diff options
author | 3 <NotZed@Ximian.com> | 2001-10-04 02:48:47 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2001-10-04 02:48:47 +0800 |
commit | cb9d644a2ee55614b35dfdec6a7731db4ed1e35c (patch) | |
tree | d1295be217eec4ccb631c1d28e9b68d7f034f6a9 | |
parent | 636b05ecb88932f28ef2d1829da2b40ebcfb6253 (diff) | |
download | gsoc2013-evolution-cb9d644a2ee55614b35dfdec6a7731db4ed1e35c.tar.gz gsoc2013-evolution-cb9d644a2ee55614b35dfdec6a7731db4ed1e35c.tar.zst gsoc2013-evolution-cb9d644a2ee55614b35dfdec6a7731db4ed1e35c.zip |
Dont wait for event to finish before returning. This could however mean we
2001-10-03 <NotZed@Ximian.com>
* mail-folder-cache.c (folder_changed): Dont wait for event to
finish before returning. This could however mean we process it
after things have vanished below us? Fixes another case of ctrl-d
deadlock.
* mail-ops.c
(remove_folder_get): Freeze/thaw around deleting all messages in
folder.
svn path=/trunk/; revision=13382
-rw-r--r-- | mail/ChangeLog | 7 | ||||
-rw-r--r-- | mail/mail-folder-cache.c | 3 | ||||
-rw-r--r-- | mail/mail-ops.c | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 59a8661ab1..53658f3a07 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,11 +1,18 @@ 2001-10-03 <NotZed@Ximian.com> + * mail-folder-cache.c (folder_changed): Dont wait for event to + finish before returning. This could however mean we process it + after things have vanished below us? Fixes another case of ctrl-d + deadlock. + * folder-browser.c (update_status_bar): If we have hide deleted set, then dont count deleted messages in the 'total' messages count. Fixes #6591. * mail-ops.c (add_vtrash_info): If we have a fragment, override that, rather than the path. Fixes #5251. + (remove_folder_get): Freeze/thaw around deleting all messages in + folder. 2001-10-03 Rodrigo Moya <rodrigo@ximian.com> diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 5d5f81e2a9..3212fce3ff 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -196,7 +196,8 @@ folder_changed(CamelObject *o, gpointer event_data, gpointer user_data) return; d(printf("Fodler changed!\n")); - mail_msg_wait(mail_proxy_event((CamelObjectEventHookFunc)real_folder_changed, o, NULL, mfi)); + /* hopefully our mfi isn't lost while this is executing ... */ + mail_proxy_event((CamelObjectEventHookFunc)real_folder_changed, o, NULL, mfi); } static void diff --git a/mail/mail-ops.c b/mail/mail-ops.c index b8cd1309f7..371a12f626 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -1382,9 +1382,11 @@ remove_folder_get (struct _mail_msg *mm) /* Delete every message in this folder, then expunge it */ uids = camel_folder_get_uids (folder); + camel_folder_freeze(folder); for (i = 0; i < uids->len; i++) camel_folder_delete_message (folder, uids->pdata[i]); camel_folder_sync (folder, TRUE, NULL); + camel_folder_thaw(folder); camel_folder_free_uids (folder, uids); /* if the store supports subscriptions, unsubscribe from this folder... */ |