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