From 10244160adc19b3837db9983994833b30db4b263 Mon Sep 17 00:00:00 2001 From: "Stephen R. van den Berg" <srb@cuci.nl> Date: Wed, 17 Feb 2016 23:36:36 +0100 Subject: [PATCH] pgsql: Shortcut to close descriptors when in a destructed object. --- lib/modules/Sql.pmod/pgsql.pike | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike index c8dacbe3b3..f15ab7efa1 100644 --- a/lib/modules/Sql.pmod/pgsql.pike +++ b/lib/modules/Sql.pmod/pgsql.pike @@ -1179,9 +1179,12 @@ private void procmessage() { } break; } + if(!this) { // Already destructed + ci->close(); // So close descriptors only + return; + } PD("Closing database processloop %O\n",err); - if(this) - _delayederror=err; + _delayederror=err; for(;objectp(portal);portal=qportals->read()) if(objectp(portal)) { #ifdef PG_DEBUG @@ -1191,9 +1194,9 @@ private void procmessage() { } if(!ci->close() && !terminating && _options.reconnect) _connectfail(); - else if(this) + else destruct(waitforauthready); - if(this && err && !stringp(err)) + if(err && !stringp(err)) throw(err); } -- GitLab