| 930 | |
| 931 | |
| 932 | static void enqueue(thread_db* tdbb, CheckStatusWrapper* statusVector, Lock* lock, USHORT level, SSHORT wait) |
| 933 | { |
| 934 | /************************************** |
| 935 | * |
| 936 | * e n q u e u e |
| 937 | * |
| 938 | ************************************** |
| 939 | * |
| 940 | * Functional description |
| 941 | * Submit a lock to the lock manager. |
| 942 | * |
| 943 | **************************************/ |
| 944 | SET_TDBB(tdbb); |
| 945 | Database* const dbb = tdbb->getDatabase(); |
| 946 | |
| 947 | fb_assert(LCK_CHECK_LOCK(lock)); |
| 948 | |
| 949 | lock->lck_id = dbb->lockManager()->enqueue(tdbb, statusVector, lock->lck_id, |
| 950 | lock->lck_type, lock->getKeyPtr(), lock->lck_length, |
| 951 | level, lock->lck_ast, lock->lck_object, lock->lck_data, wait, |
| 952 | lock->lck_owner_handle); |
| 953 | |
| 954 | if (!lock->lck_id) |
| 955 | { |
| 956 | lock->lck_physical = lock->lck_logical = LCK_none; |
| 957 | } |
| 958 | |
| 959 | fb_assert(LCK_CHECK_LOCK(lock)); |
| 960 | } |
| 961 | |
| 962 | |
| 963 | static int external_ast(void* lock_void) |
no test coverage detected