dovecot-2.1: imapc: IDLE didn't notify immediately about new mails.

dovecot at dovecot.org dovecot at dovecot.org
Fri Oct 7 21:07:34 EEST 2011


details:   http://hg.dovecot.org/dovecot-2.1/rev/3058a10313bd
changeset: 13617:3058a10313bd
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Oct 07 20:50:02 2011 +0300
description:
imapc: IDLE didn't notify immediately about new mails.

diffstat:

 src/lib-storage/index/imapc/imapc-mailbox.c |  43 ++++++++++++++--------------
 1 files changed, 22 insertions(+), 21 deletions(-)

diffs (60 lines):

diff -r cd4a65125c84 -r 3058a10313bd src/lib-storage/index/imapc/imapc-mailbox.c
--- a/src/lib-storage/index/imapc/imapc-mailbox.c	Fri Oct 07 20:49:32 2011 +0300
+++ b/src/lib-storage/index/imapc/imapc-mailbox.c	Fri Oct 07 20:50:02 2011 +0300
@@ -102,6 +102,27 @@
 	return ret;
 }
 
+static void imapc_mailbox_idle_timeout(struct imapc_mailbox *mbox)
+{
+	timeout_remove(&mbox->to_idle_delay);
+	if (mbox->box.notify_callback != NULL)
+		mbox->box.notify_callback(&mbox->box, mbox->box.notify_context);
+}
+
+static void imapc_mailbox_idle_notify(struct imapc_mailbox *mbox)
+{
+	struct ioloop *old_ioloop = current_ioloop;
+
+	if (mbox->box.notify_callback != NULL &&
+	    mbox->to_idle_delay == NULL) {
+		io_loop_set_current(mbox->storage->root_ioloop);
+		mbox->to_idle_delay =
+			timeout_add(NOTIFY_DELAY_MSECS,
+				    imapc_mailbox_idle_timeout, mbox);
+		io_loop_set_current(old_ioloop);
+	}
+}
+
 static void
 imapc_untagged_exists(const struct imapc_untagged_reply *reply,
 		      struct imapc_mailbox *mbox)
@@ -124,27 +145,7 @@
 		mbox->sync_fetch_first_uid = hdr->next_uid;
 	}
 	mbox->exists_count = exists_count;
-}
-
-static void imapc_mailbox_idle_timeout(struct imapc_mailbox *mbox)
-{
-	timeout_remove(&mbox->to_idle_delay);
-	if (mbox->box.notify_callback != NULL)
-		mbox->box.notify_callback(&mbox->box, mbox->box.notify_context);
-}
-
-static void imapc_mailbox_idle_notify(struct imapc_mailbox *mbox)
-{
-	struct ioloop *old_ioloop = current_ioloop;
-
-	if (mbox->box.notify_callback != NULL &&
-	    mbox->to_idle_delay == NULL) {
-		io_loop_set_current(mbox->storage->root_ioloop);
-		mbox->to_idle_delay =
-			timeout_add(NOTIFY_DELAY_MSECS,
-				    imapc_mailbox_idle_timeout, mbox);
-		io_loop_set_current(old_ioloop);
-	}
+	imapc_mailbox_idle_notify(mbox);
 }
 
 static bool keywords_are_equal(struct mail_keywords *kw,


More information about the dovecot-cvs mailing list