pike.git/
lib/
modules/
Sql.pmod/
pgsql_util.pmod
Branch:
Tag:
Non-build tags
All tags
No tags
2016-02-17
2016-02-17 18:57:19 by Stephen R. van den Berg <srb@cuci.nl>
0983ca7c6ddacb14f4a7fbd17a09aaf72b480fbd (
21
lines) (+
13
/-
8
)
[
Show
|
Annotate
]
Branch:
8.0
pgsql: Expedite filedescriptor close when leaving scope.
335:
catch(connectfail()); }
-
final void sendterminate() {
-
Thread.MutexKey lock=i->fillreadmux->lock();
-
if(i->fillread) // Delayed close() after flushing the output buffer
-
i->fillread.signal(), i->fillread=0;
-
lock=0;
-
}
-
+
final int close() { int ret;
-
+
{ Thread.MutexKey lock=i->fillreadmux->lock();
+
if(i->fillread) { // Delayed close() after flushing the output buffer
+
i->fillread.signal();
+
i->fillread=0;
+
lock=0;
+
PD("%d>Close socket read, flush write\n",socket->query_fd());
+
ret=socket->close("r");
+
i->read_cb(socket->query_id(),0);
+
return ret;
+
}
+
lock=0;
+
}
destruct(nostash); PD("%d>Close socket\n",socket->query_fd()); ret=socket->close();
-
sendterminate();
+
foreach(closecallbacks;function(void|mixed:void) closecb;) closecb(); closecallbacks=(<>);