From e12e2f09967bd1fb8bd9c73c736988c9479bc018 Mon Sep 17 00:00:00 2001 From: "Stephen R. van den Berg" <srb@cuci.nl> Date: Thu, 11 Dec 2014 11:16:54 +0100 Subject: [PATCH] pgsql: Explicitly dislodge read mutex upon fd close. --- lib/modules/Sql.pmod/pgsql_util.pmod | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod index 36510df795..bea81db261 100644 --- a/lib/modules/Sql.pmod/pgsql_util.pmod +++ b/lib/modules/Sql.pmod/pgsql_util.pmod @@ -333,15 +333,18 @@ outer: final void sendterminate() { Thread.MutexKey lock=i->fillreadmux->lock(); - i->fillread.signal(); - i->fillread=0; // Delayed close() after flushing the output buffer + if(i->fillread) // Delayed close() after flushing the output buffer + i->fillread.signal(), i->fillread=0; lock=0; } final int close() { + int ret; destruct(nostash); PD("%d>Close socket\n",socket->query_fd()); - return socket->close(); + ret=socket->close(); + sendterminate(); + return ret; } protected void destroy() { -- GitLab