]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Correctly check X server is terminated when returning to existing session
authorRobert Ancell <robert.ancell@canonical.com>
Tue, 26 Mar 2013 00:09:26 +0000 (13:09 +1300)
committerRobert Ancell <robert.ancell@canonical.com>
Tue, 26 Mar 2013 00:09:26 +0000 (13:09 +1300)
src/display-server.c
tests/scripts/switch-to-greeter-return-session.conf

index 93b02fbf5464f7799736c215c917c618242d0c73..2c40c051759ef510d9af59a48b540324a052e2a4 100644 (file)
@@ -28,6 +28,9 @@ struct DisplayServerPrivate
     /* TRUE if sessions should be automatically started on this display server */
     gboolean start_local_sessions;
 
+    /* TRUE when being stopped */
+    gboolean stopping;
+
     /* TRUE when the display server has stopped */
     gboolean stopped;
 };
@@ -81,6 +84,11 @@ void
 display_server_stop (DisplayServer *server)
 {
     g_return_if_fail (server != NULL);
+
+    if (server->priv->stopping)
+        return;
+    server->priv->stopping = TRUE;
+
     DISPLAY_SERVER_GET_CLASS (server)->stop (server);
 }
 
index acdf42078ffc3e17f1844b6efda8bf00537171b7..98315a1ffb328392cd20f6ec976a751a09f813c8 100644 (file)
@@ -46,12 +46,14 @@ autologin-user=have-password1
 #?*GREETER :51 RESPOND TEXT="password"
 #?GREETER :51 AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
 #?*GREETER :51 START-SESSION
+
+# Greeter and X server stop
 #?GREETER :51 TERMINATE SIGNAL=15
+#?XSERVER :51 TERMINATE SIGNAL=15
 
 # Cleanup
 #?*STOP-DAEMON
 # Don't know what order they will terminate
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
-#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15|XSERVER :51 TERMINATE SIGNAL=15)
+#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
+#?(SESSION :50 TERMINATE SIGNAL=15|XSERVER :50 TERMINATE SIGNAL=15)
 #?RUNNER DAEMON-EXIT STATUS=0