summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <[email protected]>2016-03-04 14:43:15 -0500
committerVictor Kareh <[email protected]>2019-02-04 07:52:05 -0500
commit0f4afbbdef79ce391455d246d62b403b6d0046f1 (patch)
treeb7d54bb70b9da8a8388e8df34dbe9284b5043f31
parent2daa4af4793d9d833cd247a25dced682eef13d50 (diff)
downloadmate-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.c20
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