implemented gobject.idle_add