aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog7
-rw-r--r--mail/mail-ops.c11
2 files changed, 13 insertions, 5 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index f0d2afe754..173aa89c07 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,10 @@
+2001-02-20 Not Zed <NotZed@Ximian.com>
+
+ * mail-ops.c (fetch_mail_fetch): Unref the driver here, in the
+ subthread, so we dont block the gui while it sync's all the
+ folders.
+ (fetch_mail_fetched): Rewmoved above code from here.
+
2001-02-16 Not Zed <NotZed@Ximian.com>
* mail-send-recv.c (receive_status): Dont do the thaw/freeze set here.
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index cb17b8b31a..6c5f3b5693 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -329,6 +329,12 @@ fetch_mail_fetch(struct _mail_msg *mm)
if (m->cancel)
camel_operation_unregister(m->cancel);
+
+ /* we unref this here as it may have more work to do (syncing
+ folders and whatnot) before we are really done */
+ /* should this be cancellable too? (i.e. above unregister above) */
+ camel_object_unref((CamelObject *)m->fmsg.driver);
+ m->fmsg.driver = NULL;
}
static void
@@ -336,11 +342,6 @@ fetch_mail_fetched(struct _mail_msg *mm)
{
struct _fetch_mail_msg *m = (struct _fetch_mail_msg *)mm;
- /* we unref this here as it may have more work to do (syncing
- folders and whatnot) before we are really done */
- camel_object_unref((CamelObject *)m->fmsg.driver);
- m->fmsg.driver = NULL;
-
if (m->done)
m->done(m->source_uri, m->data);
}