Mercurial > dovecot > core-2.2
changeset 14243:ba2b4f8a1bb1
mailbox list indexes: Avoid unnecessary refresh flag writes.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 28 Feb 2012 06:52:43 +0200 |
parents | 54aeb3853bae |
children | bdc881838b00 |
files | src/lib-storage/list/mailbox-list-index-status.c src/lib-storage/list/mailbox-list-index-sync.c src/lib-storage/list/mailbox-list-index.c src/lib-storage/list/mailbox-list-index.h |
diffstat | 4 files changed, 7 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- 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);
--- 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;
--- 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;
--- 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);