From: Timo Sirainen Date: Fri, 11 Sep 2020 11:28:11 +0000 (+0300) Subject: lib-dict: dict_switch_ioloop() - Move also failure timeout X-Git-Tag: 2.3.13~177 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=31d7b252dfbc6a585f3104f5cd7a7bb44eda005e;p=thirdparty%2Fdovecot%2Fcore.git lib-dict: dict_switch_ioloop() - Move also failure timeout Forgotten in 178bb676ea1dd380789d3587bf5e64fd85a29d7a --- diff --git a/src/lib-dict/dict.c b/src/lib-dict/dict.c index ed2b8a406a..26c0e6dab8 100644 --- a/src/lib-dict/dict.c +++ b/src/lib-dict/dict.c @@ -178,10 +178,18 @@ void dict_wait(struct dict *dict) bool dict_switch_ioloop(struct dict *dict) { - if (dict->v.switch_ioloop != NULL) - return dict->v.switch_ioloop(dict); - else - return FALSE; + struct dict_commit_callback_ctx *commit; + bool ret = FALSE; + + for (commit = dict->commits; commit != NULL; commit = commit->next) { + commit->to = io_loop_move_timeout(&commit->to); + ret = TRUE; + } + if (dict->v.switch_ioloop != NULL) { + if (dict->v.switch_ioloop(dict)) + return TRUE; + } + return ret; } static bool dict_key_prefix_is_valid(const char *key)