| 785 | |
| 786 | |
| 787 | void LCK_release(thread_db* tdbb, Lock* lock) |
| 788 | { |
| 789 | /************************************** |
| 790 | * |
| 791 | * L C K _ r e l e a s e |
| 792 | * |
| 793 | ************************************** |
| 794 | * |
| 795 | * Functional description |
| 796 | * Release an existing lock. |
| 797 | * |
| 798 | **************************************/ |
| 799 | SET_TDBB(tdbb); |
| 800 | fb_assert(LCK_CHECK_LOCK(lock)); |
| 801 | |
| 802 | #ifdef DEBUG_LCK |
| 803 | LckSync sync(lock, "LCK_release"); |
| 804 | #endif |
| 805 | |
| 806 | if (lock->lck_physical != LCK_none) { |
| 807 | DEQUEUE(tdbb, lock); |
| 808 | } |
| 809 | |
| 810 | lock->lck_physical = lock->lck_logical = LCK_none; |
| 811 | lock->lck_id = lock->lck_data = 0; |
| 812 | lock->setLockAttachment(NULL); |
| 813 | |
| 814 | fb_assert(LCK_CHECK_LOCK(lock)); |
| 815 | } |
| 816 | |
| 817 | |
| 818 | void LCK_re_post(thread_db* tdbb, Lock* lock) |
no test coverage detected