dovecot-2.2: dict-redis: Use timeout_msecs parameter also for tr...
dovecot at dovecot.org
dovecot at dovecot.org
Tue Dec 2 08:29:40 UTC 2014
details: http://hg.dovecot.org/dovecot-2.2/rev/61b789a5e2c7
changeset: 18122:61b789a5e2c7
user: Timo Sirainen <tss at iki.fi>
date: Tue Dec 02 00:29:13 2014 -0800
description:
dict-redis: Use timeout_msecs parameter also for transaction commit waits.
diffstat:
src/lib-dict/dict-redis.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diffs (33 lines):
diff -r 668068a45447 -r 61b789a5e2c7 src/lib-dict/dict-redis.c
--- a/src/lib-dict/dict-redis.c Tue Dec 02 00:26:24 2014 -0800
+++ b/src/lib-dict/dict-redis.c Tue Dec 02 00:29:13 2014 -0800
@@ -108,18 +108,29 @@
io_loop_stop(conn->dict->ioloop);
}
+static void redis_dict_wait_timeout(struct redis_dict *dict)
+{
+ i_error("redis: Commit timed out in %u.%03u secs",
+ dict->timeout_msecs/1000, dict->timeout_msecs%1000);
+ io_loop_stop(dict->ioloop);
+}
+
static void redis_wait(struct redis_dict *dict)
{
+ struct timeout *to;
+
i_assert(dict->ioloop == NULL);
dict->prev_ioloop = current_ioloop;
dict->ioloop = io_loop_create();
+ to = timeout_add(dict->timeout_msecs, redis_dict_wait_timeout, dict);
connection_switch_ioloop(&dict->conn.conn);
do {
io_loop_run(dict->ioloop);
} while (array_count(&dict->input_states) > 0);
+ timeout_remove(&to);
io_loop_set_current(dict->prev_ioloop);
connection_switch_ioloop(&dict->conn.conn);
io_loop_set_current(dict->ioloop);
More information about the dovecot-cvs
mailing list