summaryrefslogtreecommitdiff
path: root/daemon/gdm-session-worker-job.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2008-08-15 17:13:36 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2008-08-15 17:13:36 +0000
commitf5d6584fa8d60ab78ec2307ab7a8787fb6895a91 (patch)
tree2dfcff0a8bd05eaf6072e2eecec02fba9cf6f1e1 /daemon/gdm-session-worker-job.c
parent146a464aa0208523e174e65dcbfaa362375bc921 (diff)
downloadgdm-f5d6584fa8d60ab78ec2307ab7a8787fb6895a91.tar.gz
Use a callback for the fatal handler instead of supplying the main_loop.
2008-08-15 William Jon McCann <jmccann@redhat.com> * common/gdm-signal-handler.c (signal_io_watch), (gdm_signal_handler_set_fatal_func): * common/gdm-signal-handler.h: * daemon/factory-slave-main.c (main): * daemon/gdm-session-direct.c (stop_worker): * daemon/gdm-session-worker-job.c (session_worker_job_child_watch): * daemon/main.c (main): * daemon/product-slave-main.c (main): * daemon/session-worker-main.c (main): * daemon/simple-slave-main.c (main): * daemon/xdmcp-chooser-slave-main.c (main): Use a callback for the fatal handler instead of supplying the main_loop. svn path=/trunk/; revision=6382
Diffstat (limited to 'daemon/gdm-session-worker-job.c')
-rw-r--r--daemon/gdm-session-worker-job.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/daemon/gdm-session-worker-job.c b/daemon/gdm-session-worker-job.c
index 01d8b35a..bb302458 100644
--- a/daemon/gdm-session-worker-job.c
+++ b/daemon/gdm-session-worker-job.c
@@ -100,6 +100,10 @@ session_worker_job_child_watch (GPid pid,
WIFEXITED (status) ? WEXITSTATUS (status)
: WIFSIGNALED (status) ? WTERMSIG (status)
: -1);
+
+ g_spawn_close_pid (job->priv->pid);
+ job->priv->pid = -1;
+
if (WIFEXITED (status)) {
int code = WEXITSTATUS (status);
g_signal_emit (job, signals [EXITED], 0, code);
@@ -107,9 +111,6 @@ session_worker_job_child_watch (GPid pid,
int num = WTERMSIG (status);
g_signal_emit (job, signals [DIED], 0, num);
}
-
- g_spawn_close_pid (job->priv->pid);
- job->priv->pid = -1;
}
static void