diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-04-19 02:38:35 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-04-19 03:53:06 +0800 |
commit | fd6ff38fbd6dc82fe16c157dbdb4602b3277abfa (patch) | |
tree | 9b6c0947b6655e8bac44ab3b3638c9c2e1ebc581 /shell | |
parent | 7a2673a359ed80ba3f3bcd569de108432da18e11 (diff) | |
download | gsoc2013-evolution-fd6ff38fbd6dc82fe16c157dbdb4602b3277abfa.tar gsoc2013-evolution-fd6ff38fbd6dc82fe16c157dbdb4602b3277abfa.tar.gz gsoc2013-evolution-fd6ff38fbd6dc82fe16c157dbdb4602b3277abfa.tar.bz2 gsoc2013-evolution-fd6ff38fbd6dc82fe16c157dbdb4602b3277abfa.tar.lz gsoc2013-evolution-fd6ff38fbd6dc82fe16c157dbdb4602b3277abfa.tar.xz gsoc2013-evolution-fd6ff38fbd6dc82fe16c157dbdb4602b3277abfa.tar.zst gsoc2013-evolution-fd6ff38fbd6dc82fe16c157dbdb4602b3277abfa.zip |
EShellBackend: Log outstanding activities during shutdown.
Log debug messages for outstanding activities during shutdown to
help investigate stuck shutdown issues.
Enable this feature with: G_MESSAGES_DEBUG=evolution-shell
Diffstat (limited to 'shell')
-rw-r--r-- | shell/e-shell-backend.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/shell/e-shell-backend.c b/shell/e-shell-backend.c index 31e3809903..0749aac4e6 100644 --- a/shell/e-shell-backend.c +++ b/shell/e-shell-backend.c @@ -82,6 +82,40 @@ static guint signals[LAST_SIGNAL]; G_DEFINE_ABSTRACT_TYPE (EShellBackend, e_shell_backend, E_TYPE_EXTENSION) static void +shell_backend_debug_list_activities (EShellBackend *shell_backend) +{ + EShellBackendClass *class; + GList *head, *link; + guint n_activities; + + class = E_SHELL_BACKEND_GET_CLASS (shell_backend); + + n_activities = g_queue_get_length (shell_backend->priv->activities); + + if (n_activities == 0) + return; + + g_debug ( + "%u active '%s' %s:", + n_activities, class->name, + (n_activities == 1) ? "activity" : "activities"); + + head = g_queue_peek_head_link (shell_backend->priv->activities); + + for (link = head; link != NULL; link = g_list_next (link)) { + EActivity *activity = E_ACTIVITY (link->data); + gchar *description; + + description = e_activity_describe (activity); + if (description != NULL) + g_debug ("* %s", description); + else + g_debug ("* (no description)"); + g_free (description); + } +} + +static void shell_backend_activity_finalized_cb (EShellBackend *shell_backend, EActivity *finalized_activity) { @@ -99,6 +133,8 @@ shell_backend_notify_busy_cb (EShellBackend *shell_backend, GParamSpec *pspec, EActivity *activity) { + shell_backend_debug_list_activities (shell_backend); + if (!e_shell_backend_is_busy (shell_backend)) { /* Disconnecting this signal handler will unreference the * EActivity and allow the shell to proceed with shutdown. */ @@ -114,6 +150,8 @@ shell_backend_prepare_for_quit_cb (EShell *shell, EActivity *activity, EShellBackend *shell_backend) { + shell_backend_debug_list_activities (shell_backend); + if (e_shell_backend_is_busy (shell_backend)) { gulong handler_id; |