A RAII helper which latches global_latch in exclusive mode during constructor, and unlatches it durin...
Definition: lock0guards.h:39
Global_exclusive_latch_guard(ut::Location location)
Definition: lock0guards.cc:37
~Global_exclusive_latch_guard()
Definition: lock0guards.cc:42
A RAII helper which tries to exclusively latch the global_lach in constructor and unlatches it,...
Definition: lock0guards.h:50
bool owns_lock() const noexcept
Checks if succeeded to latch the global_latch during construction.
Definition: lock0guards.h:57
bool m_owns_exclusive_global_latch
Did the constructor succeed to acquire exclusive global lock_sys latch?
Definition: lock0guards.h:61
~Global_exclusive_try_latch()
Definition: lock0guards.cc:53
Global_exclusive_try_latch(ut::Location location)
Definition: lock0guards.cc:48
A RAII helper which latches global_latch in shared mode during constructor, and unlatches it during d...
Definition: lock0guards.h:70
Global_shared_latch_guard(ut::Location location)
Definition: lock0guards.cc:85
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:92
~Global_shared_latch_guard()
Definition: lock0guards.cc:89
A RAII wrapper class which combines Global_shared_latch_guard and Shard_naked_latch_guard to s-latch ...
Definition: lock0guards.h:114
Shard_latch_guard(ut::Location location, const page_id_t &page_id)
Definition: lock0guards.h:123
Shard_latch_guard(ut::Location location, const dict_table_t &table)
Definition: lock0guards.h:119
Global_shared_latch_guard m_global_shared_latch_guard
Definition: lock0guards.h:115
Shard_naked_latch_guard m_shard_naked_latch_guard
Definition: lock0guards.h:116
A RAII wrapper class which s-latches the global lock_sys shard, and mutexes protecting specified shar...
Definition: lock0guards.h:167
Shard_latches_guard(ut::Location location, const buf_block_t &block_a, const buf_block_t &block_b)
Definition: lock0guards.h:169
Global_shared_latch_guard m_global_shared_latch_guard
Definition: lock0guards.h:176
Shard_naked_latches_guard m_shard_naked_latches_guard
Definition: lock0guards.h:177
A RAII helper which latches the mutex protecting given shard during constructor, and unlatches it dur...
Definition: lock0guards.h:90
~Shard_naked_latch_guard()
Definition: lock0guards.cc:79
Lock_mutex & m_shard_mutex
The mutex protecting the shard requested in constructor.
Definition: lock0guards.h:105
Shard_naked_latch_guard(ut::Location location, Lock_mutex &shard_mutex)
Definition: lock0guards.cc:62
A RAII helper which latches the mutexes protecting specified shards for the duration of its scope.
Definition: lock0guards.h:140
~Shard_naked_latches_guard()
Definition: lock0guards.cc:115
static constexpr std::less< Lock_mutex * > MUTEX_ORDER
The ordering on shard mutexes used to avoid deadlocks.
Definition: lock0guards.h:156
Lock_mutex & m_shard_mutex_1
The "smallest" of the two shards' mutexes in the latching order.
Definition: lock0guards.h:152
Shard_naked_latches_guard(Lock_mutex &shard_mutex_a, Lock_mutex &shard_mutex_b)
Definition: lock0guards.cc:98
Lock_mutex & m_shard_mutex_2
The "largest" of the two shards' mutexes in the latching order.
Definition: lock0guards.h:154
Page identifier.
Definition: buf0types.h:206
A utility class which, if inherited from, prevents the descendant class from being copied,...
Definition: ut0class_life_cycle.h:40
ib_id_t table_id_t
Table or partition identifier (unique within an InnoDB instance).
Definition: dict0types.h:217
The transaction lock system.
ib_mutex_t Lock_mutex
Definition: lock0lock.h:1016
static PFS_engine_table_share_proxy table
Definition: pfs.cc:60
Definition: lock0guards.h:33
The buffer control block structure.
Definition: buf0buf.h:1689
Data structure for a database table.
Definition: dict0mem.h:1908
Utilities related to class lifecycle.
unsigned long id[MAX_DEAD]
Definition: xcom_base.cc:509