101 bool _cond_timedwait(uint32_t base_version, uint32_t timeout_microsec);
124 ::memset(
this, 0,
sizeof(*
this));
128 ::pthread_mutex_init(&(_store_tables[i].
_waiter_mutex),
nullptr);
129 ::pthread_cond_init(&(_store_tables[i].
_waiter_cond),
nullptr);
138 ::pthread_cond_destroy(&(_store_tables[i].
_waiter_cond));
158 ::memset(
this, 0,
sizeof(*
this));
178 ::memset(
this, 0,
sizeof(*
this));
201 ::memset(
this, 0,
sizeof(*
this));
242 ::memset(
this, 0,
sizeof(*
this));
280 #endif // __LOCK_LIL_H uint16_t _vid
Definition: lock_lil.h:188
Definition: lock_lil.h:37
Definition: lock_lil.h:108
uint16_t _IS_count
Definition: lock_lil.h:60
static constexpr size_t max
Definition: stnode_page.h:64
Definition: lock_lil.h:147
~lil_global_store_table()
Definition: lock_lil.h:112
pthread_cond_t _waiter_cond
Definition: lock_lil.h:71
w_rc_t _request_lock_S(lsn_t &observed_tag)
Definition: lock_lil.cpp:213
w_rc_t _request_lock_IS(lsn_t &observed_tag)
Definition: lock_lil.cpp:157
Definition: lock_lil.h:40
bool _X_taken
Definition: lock_lil.h:63
~lil_private_table()
Definition: lock_lil.h:239
void clear()
Definition: lock_lil.h:241
Definition: lock_lil.h:39
void clear()
Definition: lock_lil.h:200
uint32_t StoreID
Definition: basics.h:47
const uint16_t MAX_STORE_PER_VOL_XCT
Definition: lock_lil.h:34
uint16_t _waiting_S
Definition: lock_lil.h:65
lil_private_store_table()
Definition: lock_lil.h:171
bool _cond_timedwait(uint32_t base_version, uint32_t timeout_microsec)
Definition: lock_lil.cpp:98
uint16_t _waiting_X
Definition: lock_lil.h:66
static const lsn_t null
Definition: lsn.h:371
lil_global_vol_table()
Definition: lock_lil.h:123
Definition: lock_lil.h:119
lsn_t _x_lock_tag
Definition: lock_lil.h:68
w_rc_t request_lock(lil_lock_modes_t mode)
Definition: lock_lil.cpp:24
w_rc_t _request_lock_IX(lsn_t &observed_tag)
Definition: lock_lil.cpp:185
pthread_mutex_t _waiter_mutex
Definition: lock_lil.h:69
uint16_t _IX_count
Definition: lock_lil.h:61
void release_locks(bool *lock_taken, bool read_lock_only=false, lsn_t commit_lsn=lsn_t::null)
Definition: lock_lil.cpp:47
Log Sequence Number. See Log Sequence Numbers (LSN).
Definition: lsn.h:243
Definition: lock_lil.h:38
uint16_t _stores
Definition: lock_lil.h:189
uint32_t _unused2
Definition: lock_lil.h:231
void clear()
Definition: lock_lil.h:177
Definition: lock_lil.h:41
Return code for most functions and methods.
Definition: w_rc.h:87
uint16_t _volumes
Definition: lock_lil.h:229
LIL private lock table to remember all locks in xct.
Definition: lock_lil.h:227
~lil_private_vol_table()
Definition: lock_lil.h:198
uint32_t _store
Definition: lock_lil.h:168
LIL private lock table to remember Store locks taken by current xct.
Definition: lock_lil.h:166
tatas_lock _spin_lock
Definition: lock_lil.h:76
~lil_global_table()
Definition: lock_lil.h:155
A test-and-test-and-set spinlock.
Definition: tatas.h:25
~lil_private_store_table()
Definition: lock_lil.h:175
lil_lock_modes_t
Definition: lock_lil.h:36
LIL global lock table to protect Volume/Store from concurrent accesses.
Definition: lock_lil.h:58
uint16_t _S_count
Definition: lock_lil.h:62
~lil_global_vol_table()
Definition: lock_lil.h:133
const uint16_t MAX_VOL_GLOBAL
Definition: lock_lil.h:28
void clear()
Definition: lock_lil.h:157
w_rc_t _request_lock_X(lsn_t &observed_tag)
Definition: lock_lil.cpp:247
uint16_t _unused1
Definition: lock_lil.h:230
lil_global_table()
Definition: lock_lil.h:151
lil_private_table()
Definition: lock_lil.h:235
const uint16_t MAX_VOL_PER_XCT
Definition: lock_lil.h:31
uint32_t _release_version
Definition: lock_lil.h:67
bool _dummy1
Definition: lock_lil.h:64
lil_private_vol_table()
Definition: lock_lil.h:194
LIL private lock table to remember Volume locks and Stores in it.
Definition: lock_lil.h:186
lil_global_store_table()
Definition: lock_lil.h:110