pike.git/
lib/
modules/
Sql.pmod/
pgsql_util.pmod
Branch:
Tag:
Non-build tags
All tags
No tags
2014-11-19
2014-11-19 09:33:42 by Stephen R. van den Berg <srb@cuci.nl>
48c0e8f71cedbe1ec0758d91a75b60c87e665ae9 (
21
lines) (+
14
/-
7
)
[
Show
|
Annotate
]
Branch:
8.0
pgsql: Be less destructive, signal then clear instead.
311:
} final void sendterminate() {
-
destruct
(fillread); // Delayed close() after flushing the output buffer
+
Thread.MutexKey lock=fillreadmux->lock
(
);
+
fillread
.signal(
);
+
fillread=0;
// Delayed close() after flushing the output buffer
+
lock=0;
} final int close() {
798:
if(prepbufferready) { lock=prepbuffermux->lock(); prepbuffer=plugbuffer;
-
catch
(prepbufferready->signal()
)
;
+
if
(prepbufferready
)
+
prepbufferready
->signal();
} } lock=0;
815:
private void gotdatarowdesc(void|Stdio.Buffer plugbuffer) { Thread.MutexKey lock=prepbuffermux->lock(); if(!plugbuffer) {
-
if(!prepbuffer)
-
catch(
prepbufferready->wait(lock)
)
;
+
if(!prepbuffer
&& prepbufferready
)
+
prepbufferready->wait(lock);
plugbuffer=prepbuffer; prepbuffer=0; // Free memory when plugbuffer leaves scope } if(!prepbufferready || _state>=CLOSING) lock=_unnamedstatementkey=0; else {
-
destruct(
prepbufferready); // Make sure we do this exactly once
+
prepbufferready->signal
();
+
prepbufferready=0;
// Make sure we do this exactly once
lock=0; plugbuffer->add_int16(sizeof(datarowdesc)); if(sizeof(datarowdesc))
948:
pgsqlsess=0; Thread.MutexKey lock; if(prepbufferready) {
-
Thread.MutexKey
lock=prepbuffermux->lock();
-
catch
(prepbufferready->signal()
)
;
+
lock=prepbuffermux->lock();
+
if
(prepbufferready
)
+
prepbufferready
->signal();
} if(!datarowdesc) { lock=_ddescribemux->lock();