diff options
author | Ray Strode <[email protected]> | 2016-03-04 14:43:15 -0500 |
---|---|---|
committer | Victor Kareh <[email protected]> | 2019-02-04 07:52:05 -0500 |
commit | 0f4afbbdef79ce391455d246d62b403b6d0046f1 (patch) | |
tree | b7d54bb70b9da8a8388e8df34dbe9284b5043f31 | |
parent | 2daa4af4793d9d833cd247a25dced682eef13d50 (diff) | |
download | mate-session-manager-0f4afbbdef79ce391455d246d62b403b6d0046f1.tar.bz2 mate-session-manager-0f4afbbdef79ce391455d246d62b403b6d0046f1.tar.xz |
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
-rw-r--r-- | mate-session/gsm-manager.c | 20 |
1 files 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 @@ -610,15 +610,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; @@ -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 |