FIXES:
- Added SIGCHLD handling to avoid zombie processes.
Signed-off-by: Bruno Abinader <bruno.abinader@openbossa.org>
Acked-by: Anderson Briglia <anderson.briglia@openbossa.org>
git-svn-id: https://garage.maemo.org/svn/carman/branches/carman-0.7-beta2/python-purple@1730
596f6dd7-e928-0410-a184-
9e12fd12cf7e
glib.guint glib_input_add(glib.gint fd, eventloop.PurpleInputCondition condition, eventloop.PurpleInputFunction function, glib.gpointer data)
import ecore
glib.guint glib_input_add(glib.gint fd, eventloop.PurpleInputCondition condition, eventloop.PurpleInputFunction function, glib.gpointer data)
import ecore
cdef glib.GHashTable *c_ui_info
cdef glib.GHashTable *c_ui_info
# adds glib iteration inside ecore main loop
ecore.timer_add(0.001, self.__glib_iteration_when_idle)
# adds glib iteration inside ecore main loop
ecore.timer_add(0.001, self.__glib_iteration_when_idle)
+ # libpurple's built-in DNS resolution forks processes to perform
+ # blocking lookups without blocking the main process. It does not
+ # handle SIGCHLD itself, so if the UI does not you quickly get an army
+ # of zombie subprocesses marching around.
+ signal.signal(signal.SIGCHLD, signal.SIG_IGN)
+
def destroy(self):
core.purple_core_quit()
def destroy(self):
core.purple_core_quit()