]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
dsync: Small optimization.
authorTimo Sirainen <tss@iki.fi>
Fri, 29 Jan 2010 16:06:13 +0000 (18:06 +0200)
committerTimo Sirainen <tss@iki.fi>
Fri, 29 Jan 2010 16:06:13 +0000 (18:06 +0200)
--HG--
branch : HEAD

src/dsync/dsync-brain-msgs-new.c

index e40f3564941834fc082ff4e13642616e85672c35..3182204397b5fbe17f822d9c4a902213e59b0c71 100644 (file)
@@ -228,6 +228,14 @@ dsync_brain_msg_sync_add_new_msgs(struct dsync_brain_msg_iter *iter)
        while (iter->mailbox_idx < array_count(&iter->sync->mailboxes)) {
                mailbox = array_idx(&iter->sync->mailboxes, iter->mailbox_idx);
                mailbox_guid = &mailbox->box.mailbox_guid;
+
+               if (array_count(&iter->new_msgs) == 0) {
+                       /* optimization: don't even bother selecting the
+                          mailbox */
+                       iter->mailbox_idx++;
+                       continue;
+               }
+
                dsync_worker_select_mailbox(iter->worker, &mailbox->box);
 
                if (dsync_brain_mailbox_add_new_msgs(iter, mailbox_guid)) {