| 813 | |
| 814 | |
| 815 | bool LockManager::cancelWait(SRQ_PTR owner_offset) |
| 816 | { |
| 817 | /************************************** |
| 818 | * |
| 819 | * c a n c e l W a i t |
| 820 | * |
| 821 | ************************************** |
| 822 | * |
| 823 | * Functional description |
| 824 | * Wakeup waiting owner to make it check if wait should be cancelled. |
| 825 | * As this routine could be called asyncronous, take extra care and |
| 826 | * don't trust the input params blindly. |
| 827 | * |
| 828 | **************************************/ |
| 829 | LOCK_TRACE(("LM::cancelWait (%ld)\n", owner_offset)); |
| 830 | |
| 831 | if (!owner_offset) |
| 832 | return false; |
| 833 | |
| 834 | LockTableGuard guard(this, FB_FUNCTION, owner_offset); |
| 835 | |
| 836 | own* const owner = (own*) SRQ_ABS_PTR(owner_offset); |
| 837 | if (!owner->own_count) |
| 838 | return false; |
| 839 | |
| 840 | post_wakeup(owner); |
| 841 | return true; |
| 842 | } |
| 843 | |
| 844 | |
| 845 | LOCK_DATA_T LockManager::queryData(const USHORT series, const USHORT aggregate) |