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  | 
