A RAII helper which latches global_latch in exclusive mode during constructor, and unlatches it durin...
Definition: lock0guards.h:40
Global_exclusive_latch_guard(ut::Location location)
Definition: lock0guards.cc:38
~Global_exclusive_latch_guard()
Definition: lock0guards.cc:43
A RAII helper which tries to exclusively latch the global_lach in constructor and unlatches it,...
Definition: lock0guards.h:51
bool owns_lock() const noexcept
Checks if succeeded to latch the global_latch during construction.
Definition: lock0guards.h:58
bool m_owns_exclusive_global_latch
Did the constructor succeed to acquire exclusive global lock_sys latch?
Definition: lock0guards.h:62
~Global_exclusive_try_latch()
Definition: lock0guards.cc:54
Global_exclusive_try_latch(ut::Location location)
Definition: lock0guards.cc:49
A RAII helper which latches global_latch in shared mode during constructor, and unlatches it during d...
Definition: lock0guards.h:71
Global_shared_latch_guard(ut::Location location)
Definition: lock0guards.cc:86
bool is_x_blocked_by_us()
Checks if there is a thread requesting the global_latch in exclusive mode blocked by our thread.
Definition: lock0guards.cc:93
~Global_shared_latch_guard()
Definition: lock0guards.cc:90
A RAII wrapper class which combines Global_shared_latch_guard and Shard_naked_latch_guard to s-latch ...
Definition: lock0guards.h:115
Shard_latch_guard(ut::Location location, const page_id_t &page_id)
Definition: lock0guards.h:124
Shard_latch_guard(ut::Location location, const dict_table_t &table)
Definition: lock0guards.h:120
Global_shared_latch_guard m_global_shared_latch_guard
Definition: lock0guards.h:116
Shard_naked_latch_guard m_shard_naked_latch_guard
Definition: lock0guards.h:117
A RAII wrapper class which s-latches the global lock_sys shard, and mutexes protecting specified shar...
Definition: lock0guards.h:168
Shard_latches_guard(ut::Location location, const buf_block_t &block_a, const buf_block_t &block_b)
Definition: lock0guards.h:170
Global_shared_latch_guard m_global_shared_latch_guard
Definition: lock0guards.h:177
Shard_naked_latches_guard m_shard_naked_latches_guard
Definition: lock0guards.h:178
A RAII helper which latches the mutex protecting given shard during constructor, and unlatches it dur...
Definition: lock0guards.h:91
~Shard_naked_latch_guard()
Definition: lock0guards.cc:80
Lock_mutex & m_shard_mutex
The mutex protecting the shard requested in constructor.
Definition: lock0guards.h:106
Shard_naked_latch_guard(ut::Location location, Lock_mutex &shard_mutex)
Definition: lock0guards.cc:63
A RAII helper which latches the mutexes protecting specified shards for the duration of its scope.
Definition: lock0guards.h:141
~Shard_naked_latches_guard()
Definition: lock0guards.cc:116
static constexpr std::less< Lock_mutex * > MUTEX_ORDER
The ordering on shard mutexes used to avoid deadlocks.
Definition: lock0guards.h:157
Lock_mutex & m_shard_mutex_1
The "smallest" of the two shards' mutexes in the latching order.
Definition: lock0guards.h:153
Shard_naked_latches_guard(Lock_mutex &shard_mutex_a, Lock_mutex &shard_mutex_b)
Definition: lock0guards.cc:99
Lock_mutex & m_shard_mutex_2
The "largest" of the two shards' mutexes in the latching order.
Definition: lock0guards.h:155
Page identifier.
Definition: buf0types.h:207
A utility class which, if inherited from, prevents the descendant class from being copied,...
Definition: ut0class_life_cycle.h:41
ib_id_t table_id_t
Table or partition identifier (unique within an InnoDB instance).
Definition: dict0types.h:232
The transaction lock system.
ib_mutex_t Lock_mutex
Definition: lock0lock.h:1017
Definition: lock0guards.h:34
The buffer control block structure.
Definition: buf0buf.h:1690
Data structure for a database table.
Definition: dict0mem.h:1909
Utilities related to class lifecycle.
unsigned long id[MAX_DEAD]
Definition: xcom_base.cc:510