From 76da9d599128d5305a02aae25a26af8cfbf94fc8 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Tue, 12 Dec 2017 01:02:27 +0200 Subject: [PATCH] lib: io_loop_context_new() - deactivate old context Since it changes the current context, it needs to deactivate the old one. --- src/lib/ioloop.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/ioloop.c b/src/lib/ioloop.c index 2102e82949..41b556372c 100644 --- a/src/lib/ioloop.c +++ b/src/lib/ioloop.c @@ -876,8 +876,12 @@ struct ioloop_context *io_loop_context_new(struct ioloop *ioloop) ctx->ioloop = ioloop; i_array_init(&ctx->callbacks, 4); - if (ioloop->cur_ctx != NULL) - io_loop_context_unref(&ioloop->cur_ctx); + if (ioloop->cur_ctx != NULL) { + io_loop_context_deactivate(ioloop->cur_ctx); + /* deactivation may remove the cur_ctx */ + if (ioloop->cur_ctx != NULL) + io_loop_context_unref(&ioloop->cur_ctx); + } ioloop->cur_ctx = ctx; return ctx; } -- 2.47.3