MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / tryReleaseLock

Method tryReleaseLock

src/jrd/GlobalRWLock.cpp:326–343  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

324}
325
326bool GlobalRWLock::tryReleaseLock(thread_db* tdbb)
327{
328 CheckoutLockGuard counterGuard(tdbb, counterMutex, FB_FUNCTION, true);
329
330 COS_TRACE(("(%p)->tryReleaseLock readers(%d), blocking(%d), pendingWriters(%d), currentWriter(%d), lck_physical(%d)",
331 this, readers, blocking, pendingWriters, currentWriter, cachedLock->lck_physical));
332
333 if (readers || currentWriter)
334 return false;
335
336 if (cachedLock->lck_physical > LCK_none)
337 {
338 LCK_release(tdbb, cachedLock);
339 invalidate(tdbb);
340 }
341
342 return true;
343}
344
345void GlobalRWLock::blockingAstHandler(thread_db* tdbb)
346{

Callers 3

unlockStateReadMethod · 0.80
endBackupMethod · 0.80
actualizeStateMethod · 0.80

Calls 1

LCK_releaseFunction · 0.85

Tested by

no test coverage detected