Mercurial > dovecot > original-hg > dovecot-1.2
changeset 4975:1bc48cee6420 HEAD
Call mail_index_view_unlock() only when all transactions are finished.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 28 Dec 2006 22:15:08 +0200 |
parents | 4654603f24f6 |
children | 4d947423c82f |
files | src/lib-storage/index/index-status.c src/lib-storage/index/index-sync.c src/lib-storage/index/index-transaction.c |
diffstat | 3 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/index-status.c Thu Dec 28 21:59:37 2006 +0200 +++ b/src/lib-storage/index/index-status.c Thu Dec 28 22:15:08 2006 +0200 @@ -44,6 +44,7 @@ index_storage_mailbox_open(ibox); ret = index_storage_get_status_locked(ibox, items, status); - mail_index_view_unlock(ibox->view); + if (box->transaction_count == 0) + mail_index_view_unlock(ibox->view); return ret; }
--- a/src/lib-storage/index/index-sync.c Thu Dec 28 21:59:37 2006 +0200 +++ b/src/lib-storage/index/index-sync.c Thu Dec 28 22:15:08 2006 +0200 @@ -321,7 +321,8 @@ status_r); } - mail_index_view_unlock(ctx->ibox->view); + if (ibox->box.transaction_count == 0) + mail_index_view_unlock(ibox->view); i_free(ctx); return ret; }
--- a/src/lib-storage/index/index-transaction.c Thu Dec 28 21:59:37 2006 +0200 +++ b/src/lib-storage/index/index-transaction.c Thu Dec 28 22:15:08 2006 +0200 @@ -23,7 +23,8 @@ { mail_cache_view_close(t->cache_view); mail_index_view_close(&t->trans_view); - mail_index_view_unlock(t->ibox->view); + if (t->ibox->box.transaction_count == 0) + mail_index_view_unlock(t->ibox->view); array_free(&t->mailbox_ctx.module_contexts); i_free(t); }