|
Zero
0.1.0
|
An RAW-style lock entry in the queue. More...
#include <lock_raw.h>
Public Types | |
| enum | LockState { UNUSED = 0, OBSOLETE, ACTIVE, WAITING } |
Public Attributes | |
| uint32_t | hash |
| LockState | state |
| MarkablePointer< RawLock > | next |
| RawXct * | owner_xct |
| okvl_mode | mode |
| RawLock * | xct_previous |
| RawLock * | xct_next |
| RawLock * | xct_hashmap_previous |
| RawLock * | xct_hashmap_next |
Public Attributes inherited from GcPoolEntry | |
| gc_pointer_raw | gc_pointer |
An RAW-style lock entry in the queue.
Unlike the original Shore-MT lock manager, this lock entry does not have the notion of "upgrading" state. When we need more permissions in the key, we just create another lock entry. Thus, we might have multiple lock entries from one transaction in one queue. This enables the RAW-style lock queue optimizations.
| enum RawLock::LockState |
| uint32_t RawLock::hash |
Precise hash of the protected resource.
| okvl_mode RawLock::mode |
Requested lock mode.
| MarkablePointer<RawLock> RawLock::next |
Constitutes a singly-linked list in RawLockQueue.
| RawXct* RawLock::owner_xct |
owning xct.
| LockState RawLock::state |
Current status of this lock.
| RawLock* RawLock::xct_hashmap_next |
| RawLock* RawLock::xct_hashmap_previous |
| RawLock* RawLock::xct_previous |
Doubly-linked list in RawXct. This is a transaction-private information.
1.8.12