From c4abb08b4696d4ab1a0e2143ef4a8c71ec5aa7b2 Mon Sep 17 00:00:00 2001 From: "Stephen R. van den Berg" <srb@cuci.nl> Date: Sat, 15 Oct 2016 11:30:56 +0200 Subject: [PATCH] pgsql: Cater for callbacks waiting for mutex while being destructed. --- lib/modules/Sql.pmod/pgsql_util.pmod | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod index 74d872aa4f..46b06ad429 100644 --- a/lib/modules/Sql.pmod/pgsql_util.pmod +++ b/lib/modules/Sql.pmod/pgsql_util.pmod @@ -284,14 +284,13 @@ class conxion { private int write_cb() { Thread.MutexKey lock = shortmux->lock(); - towrite -= output_to(socket,towrite); - lock = 0; -#ifdef PG_DEBUG - if (!i->fillread) - PD("%d>Delayed close to go %d\n", socket->query_fd(), sizeof(this)); -#endif - if (!i->fillread && !sizeof(this)) - close(); + if (this) { + towrite -= output_to(socket, towrite); + lock = 0; + if (!i->fillread && !sizeof(this)) + close(); + } else + lock = 0; return 0; } -- GitLab