[gdm/display-configuration] Wait X socket release before spawn it.
- From: Halton Huo <haltonhuo src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gdm/display-configuration] Wait X socket release before spawn it.
- Date: Fri, 27 Nov 2009 14:36:26 +0000 (UTC)
commit a720673cc6dff0677213f21b6e3c8cf2e760379d
Author: Halton Huo <halton huo sun com>
Date: Fri Nov 27 18:05:56 2009 +0800
Wait X socket release before spawn it.
Sometimes quit X slowly, adding this to avoid restart
http://defect.opensolaris.org/bz/show_bug.cgi?id=12795
daemon/gdm-server.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/daemon/gdm-server.c b/daemon/gdm-server.c
index 4268273..6408d04 100644
--- a/daemon/gdm-server.c
+++ b/daemon/gdm-server.c
@@ -602,6 +602,7 @@ gdm_server_spawn (GdmServer *server,
GPtrArray *env;
gboolean ret;
char *freeme;
+ char *tmp;
ret = FALSE;
@@ -624,6 +625,26 @@ gdm_server_spawn (GdmServer *server,
_exit (SERVER_ABORT);
}
+ /* Sometimes quit X slowly, adding this to avoid restart session
+ failure */
+ if ((tmp = strstr (server->priv->display_name, ":")) != NULL) {
+ char *socket_file;
+ int display_num;
+ char *p;
+
+ tmp++;
+ display_num = g_ascii_strtod (tmp, &p);
+
+ socket_file = g_strdup_printf ("/tmp/.X11-unix/X%d",
+ display_num);
+ while (1) {
+ if (!g_file_test (socket_file, G_FILE_TEST_EXISTS))
+ break;
+ sleep (1);
+ }
+ g_free (socket_file);
+ }
+
env = get_server_environment (server);
freeme = g_strjoinv (" ", argv);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]