pike.git/
lib/
modules/
Sql.pmod/
pgsql_util.pmod
Branch:
Tag:
Non-build tags
All tags
No tags
2014-11-17
2014-11-17 15:48:17 by Stephen R. van den Berg <srb@cuci.nl>
dd5ac2df186c80a856b8f60e186fd37c45a4971a (
19
lines) (+
9
/-
10
)
[
Show
|
Annotate
]
Branch:
8.1
pgsql: Destroy condition instead of the mutex for stability.
689:
prepbuffer=plugbuffer, gotdatarowdesc(); else if(dontcacheprefix->match(_query)) // Don't cache FETCH/COPY m_delete(pgsqlsess->_prepareds,_query),_tprepared=0;
-
Thread.MutexKey
lock;
-
if(!prepbuffer
&&
!catch(
lock=prepbuffermux->lock()
)) {
+
if(!prepbuffer)
{
+
Thread.MutexKey
lock=prepbuffermux->lock()
;
prepbuffer=plugbuffer;
-
prepbufferready->signal();
+
catch(
prepbufferready->signal()
)
;
lock=0; } }
707:
} private void gotdatarowdesc() {
-
Thread.MutexKey lock
;
-
if(catch(lock
=prepbuffermux->lock()
))
-
return
;
+
Thread.MutexKey lock=prepbuffermux->lock();
if(!prepbuffer)
-
prepbufferready->wait(lock);
-
destruct(
prepbuffermux
);
+
catch(
prepbufferready->wait(lock)
)
;
+
destruct(
prepbufferready
);
lock=0; if(_state==CLOSED) return;
836:
private void releaseconditions() { pgsqlsess=0; Thread.MutexKey lock;
-
if(
prepbuffermux
) {
+
if(
prepbufferready
) {
Thread.MutexKey lock=prepbuffermux->lock();
-
prepbufferready->signal();
+
catch(
prepbufferready->signal()
)
;
} if(!_datarowdesc) { lock=_ddescribemux->lock();