diff options
author | Not Zed <NotZed@Ximian.com> | 2004-03-17 18:03:58 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2004-03-17 18:03:58 +0800 |
commit | 9801f37793cd5ef06da86ce96d52bc66e77083d5 (patch) | |
tree | d639e582544a37d02f992075f67eb76279b3646b /mail | |
parent | bc5fc28e5b2e3602b186ee430d45c48c919ae9da (diff) | |
download | gsoc2013-evolution-9801f37793cd5ef06da86ce96d52bc66e77083d5.tar.gz gsoc2013-evolution-9801f37793cd5ef06da86ce96d52bc66e77083d5.tar.zst gsoc2013-evolution-9801f37793cd5ef06da86ce96d52bc66e77083d5.zip |
split this, only call add_store/note_store once we've actually set the
2004-03-17 Not Zed <NotZed@Ximian.com>
* mail-offline-handler.c (store_go_online): split this, only call
add_store/note_store once we've actually set the store online.
(store_went_online): set the store up once we're fully online.
Works around a deadlock in #55618.
svn path=/trunk/; revision=25097
Diffstat (limited to 'mail')
-rw-r--r-- | mail/mail-offline-handler.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/mail/mail-offline-handler.c b/mail/mail-offline-handler.c index 28cecf2e43..d2b2cdbce0 100644 --- a/mail/mail-offline-handler.c +++ b/mail/mail-offline-handler.c @@ -173,15 +173,23 @@ impl_goOffline (PortableServer_Servant servant, } static void +store_went_online(CamelStore *store, void *data) +{ + char *name = data; + + em_folder_tree_model_add_store(mail_component_peek_tree_model(mail_component_peek()), store, name); + mail_note_store (store, NULL, NULL, NULL); + g_free(name); +} + +static void store_go_online (gpointer key, gpointer value, gpointer data) { CamelStore *store = key; char *name = value; if (service_is_relevant (CAMEL_SERVICE (store), FALSE)) { - mail_store_set_offline (store, FALSE, NULL, NULL); - em_folder_tree_model_add_store(mail_component_peek_tree_model(mail_component_peek()), store, name); - mail_note_store (store, NULL, NULL, NULL); + mail_store_set_offline (store, FALSE, store_went_online, g_strdup(name)); } } |