diff --git a/src/doveadm/client-connection-http.c b/src/doveadm/client-connection-http.c index 304683791b..bb92b9385d 100644 --- a/src/doveadm/client-connection-http.c +++ b/src/doveadm/client-connection-http.c @@ -226,9 +226,7 @@ doveadm_http_server_command_execute(struct client_request_http *req) cctx.cmd->cmd(&cctx); client_connection_set_proctitle(&conn->conn, ""); - io_loop_set_current(prev_ioloop); - o_stream_switch_ioloop(req->output); - io_loop_set_current(ioloop); + o_stream_switch_ioloop_to(req->output, prev_ioloop); io_loop_destroy(&ioloop); if ((cctx.cmd->flags & CMD_FLAG_NO_PRINT) == 0) diff --git a/src/doveadm/client-connection-tcp.c b/src/doveadm/client-connection-tcp.c index 672017495d..ef06fb61fe 100644 --- a/src/doveadm/client-connection-tcp.c +++ b/src/doveadm/client-connection-tcp.c @@ -347,11 +347,9 @@ static int doveadm_cmd_handle(struct client_connection_tcp *conn, else doveadm_mail_cmd_server_run(conn, mctx); - io_loop_set_current(prev_ioloop); - o_stream_switch_ioloop(conn->output); + o_stream_switch_ioloop_to(conn->output, prev_ioloop); if (conn->log_out != NULL) - o_stream_switch_ioloop(conn->log_out); - io_loop_set_current(conn->ioloop); + o_stream_switch_ioloop_to(conn->log_out, prev_ioloop); io_loop_destroy(&conn->ioloop); /* clear all headers */