From 0f4afbbdef79ce391455d246d62b403b6d0046f1 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 4 Mar 2016 14:43:15 -0500 Subject: 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 Adapted from https://gitlab.gnome.org/GNOME/gnome-session/commit/58c9323e --- mate-session/gsm-manager.c | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/mate-session/gsm-manager.c b/mate-session/gsm-manager.c index f41d3ef..816a0e9 100644 --- a/mate-session/gsm-manager.c +++ b/mate-session/gsm-manager.c @@ -609,15 +609,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) { @@ -647,9 +638,6 @@ on_phase_timeout (GsmManager *manager) case GSM_MANAGER_PHASE_END_SESSION: break; case GSM_MANAGER_PHASE_EXIT: - gsm_store_foreach (priv->clients, - (GsmStoreFunc)_client_failed_to_stop, - NULL); break; default: g_assert_not_reached (); @@ -907,16 +895,12 @@ do_phase_exit (GsmManager *manager) priv = gsm_manager_get_instance_private (manager); if (gsm_store_size (priv->clients) > 0) { - priv->phase_timeout_id = g_timeout_add_seconds (GSM_MANAGER_EXIT_PHASE_TIMEOUT, - (GSourceFunc)on_phase_timeout, - manager); - gsm_store_foreach (priv->clients, (GsmStoreFunc)_client_stop, NULL); - } else { - end_phase (manager); } + + end_phase (manager); } static gboolean -- cgit v1.2.1