if (cd->conn_name) free(cd->conn_name);
- if (cd->idler) ecore_idler_del(cd->idler);
+ if (cd->idler) ecore_idle_enterer_del(cd->idler);
free(cd);
}
cd = data;
- if (!cd->idler) cd->idler = ecore_idler_add(e_dbus_idler, cd);
+ if (!cd->idler) cd->idler = ecore_idle_enterer_add(e_dbus_idler, cd);
else DBG("already idling");
}
static void
+e_dbus_loop_wakeup(void)
+{
+ static int dummy_event = 0;
+
+ /* post a dummy event to get the mainloop back to normal - this is
+ * needed because idlers are very special things that won't re-evaluate
+ * timers and other stuff while idelrs run - idle_exiters and enterers
+ * can do this safely, but not idlers. idelrs were meant to be used
+ * very sparingly for very special cases */
+ if (dummy_event == 0) dummy_event = ecore_event_type_new();
+ ecore_event_add(dummy_event, NULL, NULL, NULL);
+}
+
+static void
cb_dispatch_status(DBusConnection *conn __UNUSED__, DBusDispatchStatus new_status, void *data)
{
E_DBus_Connection *cd;
DBG("dispatch status: %d!", new_status);
cd = data;
- if (new_status == DBUS_DISPATCH_DATA_REMAINS && !cd->idler) cd->idler = ecore_idler_add(e_dbus_idler, cd);
+ if (new_status == DBUS_DISPATCH_DATA_REMAINS && !cd->idler) cd->idler = ecore_idle_enterer_add(e_dbus_idler, cd);
else if (new_status != DBUS_DISPATCH_DATA_REMAINS && cd->idler)
{
- static int dummy_event = 0;
-
- ecore_idler_del(cd->idler);
+ ecore_idle_enterer_del(cd->idler);
cd->idler = NULL;
- /* post a dummy event to get the mainloop back to normal - this is
- * needed because idlers are very special things that won't re-evaluate
- * timers and other stuff while idelrs run - idle_exiters and enterers
- * can do this safely, but not idlers. idelrs were meant to be used
- * very sparingly for very special cases */
- if (dummy_event == 0) dummy_event = ecore_event_type_new();
- ecore_event_add(dummy_event, NULL, NULL, NULL);
+ e_dbus_loop_wakeup();
}
}
e_dbus_connection_close(cd);
} while (--close_connection);
}
+ e_dbus_loop_wakeup();
return ECORE_CALLBACK_RENEW;
}
/* Idler functin must be cancelled when dbus connection is unreferenced */
if (conn->idler)
{
- ecore_idler_del(conn->idler);
+ ecore_idle_enterer_del(conn->idler);
conn->idler = NULL;
}