| 428 | } |
| 429 | |
| 430 | void 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 | |
| 452 | int jrd_rel::blocking_ast_gcLock(void* ast_object) |
| 453 | { |
no test coverage detected