]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-sql: pgsql - Use orig_ioloop instead of local variable
authorAki Tuomi <aki.tuomi@open-xchange.com>
Thu, 29 Jun 2023 10:40:24 +0000 (13:40 +0300)
committermarkus.valentin <markus.valentin@open-xchange.com>
Tue, 4 Jul 2023 14:27:37 +0000 (14:27 +0000)
orig_ioloop is used later, leaving it NULL here causes
problems when timeout is added by sqlpool.

Broken in 8981a973987c237552e46b68075b64caa8c1f5bb

src/lib-sql/driver-pgsql.c

index e4b0c63f67ffd0fa49cf4a17bc5f5c686422f03c..63188c062ba95c72bb9a2ed9be8f7ac9a7d4f881 100644 (file)
@@ -1272,13 +1272,13 @@ static void driver_pgsql_wait(struct sql_db *_db)
        if (!driver_pgsql_have_work(db))
                return;
 
-       struct ioloop *prev_ioloop = current_ioloop;
+       db->orig_ioloop = current_ioloop;
        db->ioloop = io_loop_create();
        db->io = io_loop_move_io(&db->io);
        while (driver_pgsql_have_work(db))
                io_loop_run(db->ioloop);
 
-       io_loop_set_current(prev_ioloop);
+       io_loop_set_current(db->orig_ioloop);
        db->io = io_loop_move_io(&db->io);
        io_loop_set_current(db->ioloop);
        io_loop_destroy(&db->ioloop);