summaryrefslogtreecommitdiff
path: root/daemon/gdm-slave.c
diff options
context:
space:
mode:
Diffstat (limited to 'daemon/gdm-slave.c')
-rw-r--r--daemon/gdm-slave.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/daemon/gdm-slave.c b/daemon/gdm-slave.c
index e6e0bdd5..c7a967f6 100644
--- a/daemon/gdm-slave.c
+++ b/daemon/gdm-slave.c
@@ -161,6 +161,8 @@ gboolean
gdm_slave_connect_to_x11_display (GdmSlave *slave)
{
gboolean ret;
+ sigset_t mask;
+ sigset_t omask;
ret = FALSE;
@@ -181,9 +183,14 @@ gdm_slave_connect_to_x11_display (GdmSlave *slave)
XSetIOErrorHandler (gdm_slave_xioerror_handler);
#endif
- gdm_sigchld_block_push ();
+ sigemptyset (&mask);
+ sigaddset (&mask, SIGCHLD);
+ sigprocmask (SIG_BLOCK, &mask, &omask);
+
slave->priv->server_display = XOpenDisplay (slave->priv->display_name);
- gdm_sigchld_block_pop ();
+
+ sigprocmask (SIG_SETMASK, &omask, NULL);
+
if (slave->priv->server_display == NULL) {
g_warning ("Unable to connect to display %s", slave->priv->display_name);