Mercurial > dovecot > original-hg > dovecot-1.2
changeset 8796:94c815002d84 HEAD
maildir: When locking uidlist, send OK notifies if it's taking a long time.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 02 Mar 2009 17:54:01 -0500 |
parents | ebfcfa35b4f4 |
children | 3e3aba4a3acd |
files | src/lib-storage/index/maildir/maildir-uidlist.c |
diffstat | 1 files changed, 13 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/maildir/maildir-uidlist.c Mon Mar 02 11:32:46 2009 -0500 +++ b/src/lib-storage/index/maildir/maildir-uidlist.c Mon Mar 02 17:54:01 2009 -0500 @@ -213,6 +213,17 @@ (void)file_dotlock_delete(&uidlist->dotlock); } +static bool dotlock_callback(unsigned int secs_left, bool stale, void *context) +{ + struct index_mailbox *ibox = context; + + index_storage_lock_notify(ibox, stale ? + MAILBOX_LOCK_NOTIFY_MAILBOX_OVERRIDE : + MAILBOX_LOCK_NOTIFY_MAILBOX_ABORT, + secs_left); + return TRUE; +} + struct maildir_uidlist * maildir_uidlist_init_readonly(struct index_mailbox *ibox) { @@ -244,6 +255,8 @@ MAILDIR_UIDLIST_LOCK_STALE_TIMEOUT + 2; uidlist->dotlock_settings.stale_timeout = MAILDIR_UIDLIST_LOCK_STALE_TIMEOUT; + uidlist->dotlock_settings.callback = dotlock_callback; + uidlist->dotlock_settings.context = ibox; return uidlist; }