dovecot-2.1: mailbox list indexes: Avoid unnecessary refresh fla...

dovecot at dovecot.org dovecot at dovecot.org
Tue Feb 28 06:53:21 EET 2012


details:   http://hg.dovecot.org/dovecot-2.1/rev/ba2b4f8a1bb1
changeset: 14207:ba2b4f8a1bb1
user:      Timo Sirainen <tss at iki.fi>
date:      Tue Feb 28 06:52:43 2012 +0200
description:
mailbox list indexes: Avoid unnecessary refresh flag writes.

diffstat:

 src/lib-storage/list/mailbox-list-index-status.c |  2 ++
 src/lib-storage/list/mailbox-list-index-sync.c   |  2 +-
 src/lib-storage/list/mailbox-list-index.c        |  5 ++---
 src/lib-storage/list/mailbox-list-index.h        |  2 ++
 4 files changed, 7 insertions(+), 4 deletions(-)

diffs (51 lines):

diff -r 54aeb3853bae -r ba2b4f8a1bb1 src/lib-storage/list/mailbox-list-index-status.c
--- a/src/lib-storage/list/mailbox-list-index-status.c	Tue Feb 28 05:14:00 2012 +0200
+++ b/src/lib-storage/list/mailbox-list-index-status.c	Tue Feb 28 06:52:43 2012 +0200
@@ -289,6 +289,8 @@
 	struct mailbox_status status;
 	uint32_t seq, seq1, seq2;
 
+	(void)mailbox_list_index_refresh(box->list);
+
 	node = mailbox_list_index_lookup(box->list, box->name);
 	if (node == NULL) {
 		mailbox_list_index_refresh_later(box->list);
diff -r 54aeb3853bae -r ba2b4f8a1bb1 src/lib-storage/list/mailbox-list-index-sync.c
--- a/src/lib-storage/list/mailbox-list-index-sync.c	Tue Feb 28 05:14:00 2012 +0200
+++ b/src/lib-storage/list/mailbox-list-index-sync.c	Tue Feb 28 06:52:43 2012 +0200
@@ -301,7 +301,7 @@
 		T_BEGIN {
 			mailbox_list_index_sync_names(&sync_ctx);
 		} T_END;
-	} else {
+	} else if (mailbox_list_index_need_refresh(ilist, sync_ctx.view)) {
 		/* we're synced, reset refresh flag */
 		struct mailbox_list_index_header new_hdr;
 
diff -r 54aeb3853bae -r ba2b4f8a1bb1 src/lib-storage/list/mailbox-list-index.c
--- a/src/lib-storage/list/mailbox-list-index.c	Tue Feb 28 05:14:00 2012 +0200
+++ b/src/lib-storage/list/mailbox-list-index.c	Tue Feb 28 06:52:43 2012 +0200
@@ -197,9 +197,8 @@
 	return 0;
 }
 
-static bool
-mailbox_list_index_need_refresh(struct mailbox_list_index *ilist,
-				struct mail_index_view *view)
+bool mailbox_list_index_need_refresh(struct mailbox_list_index *ilist,
+				     struct mail_index_view *view)
 {
 	const struct mailbox_list_index_header *hdr;
 	const void *data;
diff -r 54aeb3853bae -r ba2b4f8a1bb1 src/lib-storage/list/mailbox-list-index.h
--- a/src/lib-storage/list/mailbox-list-index.h	Tue Feb 28 05:14:00 2012 +0200
+++ b/src/lib-storage/list/mailbox-list-index.h	Tue Feb 28 06:52:43 2012 +0200
@@ -124,6 +124,8 @@
 struct mailbox_list_index_node *
 mailbox_list_index_lookup(struct mailbox_list *list, const char *name);
 
+bool mailbox_list_index_need_refresh(struct mailbox_list_index *ilist,
+				     struct mail_index_view *view);
 int mailbox_list_index_refresh(struct mailbox_list *list);
 void mailbox_list_index_refresh_later(struct mailbox_list *list);
 


More information about the dovecot-cvs mailing list