diff -ur daemon.orig/gdm-server.c daemon/gdm-server.c
--- daemon.orig/gdm-server.c 2015-04-02 06:52:39.000000000 -0700
+++ daemon/gdm-server.c 2015-05-04 12:11:56.000000000 -0700
return g_strdup (server->priv->display_device);
-gdm_server_ready (GdmServer *server)
- g_debug ("GdmServer: Got USR1 from X server - emitting READY");
- gdm_run_script (GDMCONFDIR "/Init", GDM_USERNAME,
- server->priv->display_name,
- server->priv->auth_file);
- g_signal_emit (server, signals[READY], 0);
-static GSList *active_servers;
-static gboolean sigusr1_thread_running;
-static GCond sigusr1_thread_cond;
-static GMutex sigusr1_thread_mutex;
-got_sigusr1 (gpointer user_data)
+on_sigusr1(gpointer user_data)
- GPid pid = GPOINTER_TO_UINT (user_data);
- g_debug ("GdmServer: got SIGUSR1 from PID %d", pid);
- for (l = active_servers; l; l = l->next) {
- GdmServer *server = l->data;
- if (server->priv->pid == pid)
- gdm_server_ready (server);
- return G_SOURCE_REMOVE;
-sigusr1_thread_main (gpointer user_data)
- /* Handle only SIGUSR1 */
- sigemptyset (&sigusr1_mask);
- sigaddset (&sigusr1_mask, SIGUSR1);
- sigprocmask (SIG_SETMASK, &sigusr1_mask, NULL);
- g_mutex_lock (&sigusr1_thread_mutex);