Mercurial > dovecot > original-hg > dovecot-1.2
changeset 6925:d6dd3fce2817 HEAD
Code cleanup
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 04 Dec 2007 14:08:41 +0200 |
parents | c46a191a8726 |
children | f90a4e265d00 |
files | src/lib-index/mail-index-sync.c |
diffstat | 1 files changed, 17 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-index/mail-index-sync.c Tue Dec 04 12:34:43 2007 +0200 +++ b/src/lib-index/mail-index-sync.c Tue Dec 04 14:08:41 2007 +0200 @@ -698,11 +698,25 @@ ctx->ext_trans->log_updates = TRUE; } +static bool mail_index_sync_want_index_write(struct mail_index *index) +{ + uint32_t log_diff; + + log_diff = index->map->hdr.log_file_tail_offset - + index->last_read_log_file_tail_offset; + if (log_diff > 1024) + return TRUE; + + if (index->need_recreate) + return TRUE; + return FALSE; +} + int mail_index_sync_commit(struct mail_index_sync_ctx **_ctx) { struct mail_index_sync_ctx *ctx = *_ctx; struct mail_index *index = ctx->index; - uint32_t seq, diff, next_uid; + uint32_t seq, next_uid; uoff_t offset; bool want_rotate; int ret = 0; @@ -736,11 +750,9 @@ if (mail_index_map(ctx->index, MAIL_INDEX_SYNC_HANDLER_FILE) <= 0) ret = -1; - /* FIXME: create a better rule? */ want_rotate = mail_transaction_log_want_rotate(index->log); - diff = index->map->hdr.log_file_tail_offset - - index->last_read_log_file_tail_offset; - if (ret == 0 && (diff > 1024 || want_rotate || index->need_recreate)) { + if (ret == 0 && + (want_rotate || mail_index_sync_want_index_write(index))) { index->need_recreate = FALSE; mail_index_write(index, want_rotate); }