dovecot-1.1: maildir: When locking uidlist, send OK notifies if ...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Mar 3 00:54:27 EET 2009
details: http://hg.dovecot.org/dovecot-1.1/rev/ae1d3f97d703
changeset: 8180:ae1d3f97d703
user: Timo Sirainen <tss at iki.fi>
date: Mon Mar 02 17:54:01 2009 -0500
description:
maildir: When locking uidlist, send OK notifies if it's taking a long time.
diffstat:
1 file changed, 13 insertions(+)
src/lib-storage/index/maildir/maildir-uidlist.c | 13 +++++++++++++
diffs (30 lines):
diff -r 71b7c7f8d7a2 -r ae1d3f97d703 src/lib-storage/index/maildir/maildir-uidlist.c
--- a/src/lib-storage/index/maildir/maildir-uidlist.c Mon Mar 02 11:32:30 2009 -0500
+++ b/src/lib-storage/index/maildir/maildir-uidlist.c Mon Mar 02 17:54:01 2009 -0500
@@ -213,6 +213,17 @@ void maildir_uidlist_unlock(struct maild
(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_init_readonly(struct ind
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;
}
More information about the dovecot-cvs
mailing list