From: Timo Sirainen Date: Tue, 22 Feb 2022 10:23:33 +0000 (+0100) Subject: dict: Make sure proctitle refresh timeout goes to the main ioloop X-Git-Tag: 2.4.0~4368 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d040e7018a400d2767afde2df2e0fee31a8a1b84;p=thirdparty%2Fdovecot%2Fcore.git dict: Make sure proctitle refresh timeout goes to the main ioloop In some situations it could have gone to dict_wait() ioloop, causing timeout leaks or crashes. --- diff --git a/src/dict/main.c b/src/dict/main.c index 3d91854137..bcf2bc7b60 100644 --- a/src/dict/main.c +++ b/src/dict/main.c @@ -25,6 +25,7 @@ static struct module *modules; static struct timeout *to_proctitle; static bool proctitle_updated; +static struct ioloop *main_ioloop; static void add_stats_string(string_t *str, struct stats_dist *stats, const char *name) @@ -69,7 +70,7 @@ void dict_proctitle_update_later(void) return; if (to_proctitle == NULL) - to_proctitle = timeout_add(1000, dict_proctitle_update, NULL); + to_proctitle = timeout_add_to(main_ioloop, 1000, dict_proctitle_update, NULL); proctitle_updated = TRUE; } @@ -167,6 +168,7 @@ int main(int argc, char *argv[]) main_preinit(); master_service_set_die_callback(master_service, dict_die); + main_ioloop = current_ioloop; main_init(); master_service_init_finish(master_service); master_service_run(master_service, client_connected);