[gnome-session] manager: don't wait for all clients to exit before exiting



commit 58c9323ea7b8e51f19449f596bb6826e7600c020
Author: Ray Strode <rstrode redhat com>
Date:   Fri Mar 4 14:43:15 2016 -0500

    manager: don't wait for all clients to exit before exiting
    
    If a client gets hung up, we shouldn't hold up going to login screen.
    It means making a bug in a single client break the desktop.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=750508

 gnome-session/gsm-manager.c |   20 ++------------------
 1 files changed, 2 insertions(+), 18 deletions(-)
---
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
index 7258aa7..f71d277 100644
--- a/gnome-session/gsm-manager.c
+++ b/gnome-session/gsm-manager.c
@@ -682,15 +682,6 @@ app_registered (GsmApp     *app,
 }
 
 static gboolean
-_client_failed_to_stop (const char *id,
-                        GsmClient  *client,
-                        gpointer    user_data)
-{
-        g_debug ("GsmManager: client failed to stop: %s, %s", gsm_client_peek_id (client), 
gsm_client_peek_app_id (client));
-        return FALSE;
-}
-
-static gboolean
 on_phase_timeout (GsmManager *manager)
 {
         GSList *a;
@@ -721,9 +712,6 @@ on_phase_timeout (GsmManager *manager)
         case GSM_MANAGER_PHASE_END_SESSION:
                 break;
         case GSM_MANAGER_PHASE_EXIT:
-                gsm_store_foreach (manager->priv->clients,
-                                   (GsmStoreFunc)_client_failed_to_stop,
-                                   NULL);
                 break;
         default:
                 g_assert_not_reached ();
@@ -951,16 +939,12 @@ static void
 do_phase_exit (GsmManager *manager)
 {
         if (gsm_store_size (manager->priv->clients) > 0) {
-                manager->priv->phase_timeout_id = g_timeout_add_seconds (GSM_MANAGER_PHASE_TIMEOUT,
-                                                                         (GSourceFunc)on_phase_timeout,
-                                                                         manager);
-
                 gsm_store_foreach (manager->priv->clients,
                                    (GsmStoreFunc)_client_stop,
                                    NULL);
-        } else {
-                end_phase (manager);
         }
+
+        end_phase (manager);
 }
 
 static gboolean


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]