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

Method downgradeGCLock

src/jrd/Relation.cpp:430–450  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

428}
429
430void jrd_rel::downgradeGCLock(thread_db* tdbb)
431{
432 if (!rel_sweep_count && (rel_flags & REL_gc_blocking))
433 {
434 fb_assert(!(rel_flags & REL_gc_lockneed));
435 fb_assert(rel_gc_lock->lck_id);
436 fb_assert(rel_gc_lock->lck_physical == LCK_SW);
437
438 rel_flags &= ~REL_gc_blocking;
439 rel_flags |= REL_gc_disabled;
440
441 LCK_downgrade(tdbb, rel_gc_lock);
442
443 if (rel_gc_lock->lck_physical != LCK_SR)
444 {
445 rel_flags &= ~REL_gc_disabled;
446 if (rel_gc_lock->lck_physical < LCK_SR)
447 rel_flags |= REL_gc_lockneed;
448 }
449 }
450}
451
452int jrd_rel::blocking_ast_gcLock(void* ast_object)
453{

Callers 3

blocking_ast_gcLockMethod · 0.80
GCSharedMethod · 0.80
~GCSharedMethod · 0.80

Calls 1

LCK_downgradeFunction · 0.85

Tested by

no test coverage detected