Mercurial > dovecot > original-hg > dovecot-1.2
changeset 5493:9f7f311260be HEAD
If reply is received from server before going to ioloop, don't hang.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 03 Apr 2007 08:09:25 +0300 |
parents | 571c43d9080c |
children | 1d2066223bb0 |
files | src/lib-sql/driver-pgsql.c |
diffstat | 1 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-sql/driver-pgsql.c Tue Apr 03 07:44:34 2007 +0300 +++ b/src/lib-sql/driver-pgsql.c Tue Apr 03 08:09:25 2007 +0300 @@ -31,6 +31,7 @@ unsigned int connecting:1; unsigned int connected:1; unsigned int querying:1; + unsigned int query_finished:1; }; struct pgsql_result { @@ -489,6 +490,7 @@ { struct pgsql_db *db = context; + db->query_finished = TRUE; db->sync_result = result; io_loop_stop(db->ioloop); } @@ -512,9 +514,11 @@ old_io.callback, old_io.context); } + db->query_finished = FALSE; driver_pgsql_query(_db, query, pgsql_query_s_callback, db); - io_loop_run(db->ioloop); + if (!db->query_finished) + io_loop_run(db->ioloop); io_loop_destroy(&db->ioloop); i_assert(db->io == NULL);