49template <
typename Mutex>
96 msg <<
m_mutex->policy().to_string();
115 return (std::string(msg.str()));
197template <
typename Mutex>
213template <
typename Mutex>
330template <
typename Mutex>
338 typedef typename latch_meta_t::CounterType::Count
Count;
361 const char *
filename [[maybe_unused]],
Track aggregate metrics policy, used by the page mutex.
Definition: sync0policy.h:335
void init(const MutexType &mutex, latch_id_t id, const char *filename, uint32_t line) 1
Called when the mutex is "created".
Definition: sync0policy.h:360
latch_meta_t::CounterType Counter
Definition: sync0policy.h:443
void locked(const MutexType &mutex, const char *filename, ulint line) 1
Called when the mutex is locked.
Definition: sync0policy.h:412
void add(uint32_t n_spins, uint32_t n_waits) 1
Called after a successful mutex acquire.
Definition: sync0policy.h:397
void destroy() 1
Called when the mutex is destroyed.
Definition: sync0policy.h:380
std::string to_string() const
Definition: sync0policy.ic:41
std::string print() const 1
Print the information about the latch.
latch_meta_t::CounterType::Count Count
Definition: sync0policy.h:338
void enter(const MutexType &mutex, const char *filename, ulint line) 1
Called when an attempt is made to lock the mutex.
Definition: sync0policy.h:427
Counter::Count * m_count
The user visible counters, registered with the meta-data.
Definition: sync0policy.h:446
void release(const MutexType &mutex) 1
Called when the mutex is released.
Definition: sync0policy.h:419
Mutex MutexType
Definition: sync0policy.h:337
BlockMutexPolicy()
Default constructor.
Definition: sync0policy.h:341
~BlockMutexPolicy()=default
Destructor.
latch_id_t m_id
Latch meta data ID.
Definition: sync0policy.h:449
latch_id_t get_id() const
Definition: sync0policy.h:437
Definition: sync0policy.h:50
const char * get_enter_filename() const 1
Definition: sync0policy.h:176
bool is_owned() const 1
Definition: sync0policy.h:171
ulint get_enter_line() const 1
Definition: sync0policy.h:181
uint32_t m_magic_n
Magic number to check for memory corruption.
Definition: sync0policy.h:189
std::thread::id get_thread_id() const 1
Definition: sync0policy.h:184
void destroy() 1
Mutex is being destroyed.
Definition: sync0policy.h:139
Context m_context
Latch state of the mutex owner.
Definition: sync0policy.h:192
void enter(const Mutex *mutex, const char *filename, ulint line) 1
Called when an attempt is made to lock the mutex.
Definition: sync0policy.ic:60
void release(const Mutex *mutex) 1
Called when the mutex is released.
Definition: sync0policy.ic:86
void locked(const Mutex *mutex, const char *filename, ulint line) 1
Called when the mutex is locked.
Definition: sync0policy.ic:75
void init(latch_id_t id) 1
Called when the mutex is "created".
Definition: sync0policy.ic:51
MutexDebug()
Constructor.
Definition: sync0policy.h:132
Definition: varlen_sort.h:183
pid_type get_id()
Definition: process.h:47
std::basic_ostringstream< char, std::char_traits< char >, ut::allocator< char > > ostringstream
Specialization of basic_ostringstream which uses ut::allocator.
Definition: ut0new.h:2869
const char * filename
Definition: pfs_example_component_population.cc:66
Server monitor counter related defines.
Collect the metrics per mutex instance, no aggregation.
Definition: sync0policy.h:218
void locked(const MutexType &mutex, const char *filename, ulint line) 1
Called when the mutex is locked.
Definition: sync0policy.h:297
void destroy() 1
Called when the mutex is destroyed.
Definition: sync0policy.h:256
std::string print() const 1
Print the information about the latch.
~GenericPolicy()=default
Destructor.
latch_id_t get_id() const 1
Definition: sync0policy.h:313
void enter(const MutexType &mutex, const char *filename, ulint line) 1
Called when an attempt is made to lock the mutex.
Definition: sync0policy.h:288
Counter::Count m_count
The user visible counters, registered with the meta-data.
Definition: sync0policy.h:322
void add(uint32_t n_spins, uint32_t n_waits) 1
Called after a successful mutex acquire.
Definition: sync0policy.h:271
void release(const MutexType &mutex) 1
Called when the mutex is released.
Definition: sync0policy.h:304
latch_id_t m_id
Latch meta data ID.
Definition: sync0policy.h:325
Mutex MutexType
Definition: sync0policy.h:220
std::string to_string() const
Definition: sync0policy.ic:36
latch_meta_t::CounterType Counter
Definition: sync0policy.h:319
void init(const MutexType &mutex, latch_id_t id, const char *filename, uint32_t line) 1
Called when the mutex is "created".
Definition: sync0policy.h:240
GenericPolicy() 1
Constructor.
Definition: sync0policy.h:223
For passing context to SyncDebug.
Definition: sync0policy.h:53
std::thread::id m_thread_id
Thread ID of the thread that own(ed) the mutex.
Definition: sync0policy.h:128
std::string to_string() const override 1
Print information about the latch.
Definition: sync0policy.h:93
virtual std::string locked_from() const override
Definition: sync0policy.h:110
Context()
Constructor.
Definition: sync0policy.h:55
void release() 1
Reset to unlock state.
Definition: sync0policy.h:81
const Mutex * m_mutex
Mutex to check for lock order violation.
Definition: sync0policy.h:119
ulint m_line
Line number in filename.
Definition: sync0policy.h:125
Context(latch_id_t id)
Create the context for SyncDebug.
Definition: sync0policy.h:62
void locked(const Mutex *mutex, const char *filename, ulint line) 1
Set to locked state.
Definition: sync0policy.h:69
const char * m_filename
Filename from where enter was called.
Definition: sync0policy.h:122
Definition: sync0policy.h:198
std::string to_string() const
Definition: sync0policy.h:208
void add(uint32_t, uint32_t) 1
Definition: sync0policy.h:205
void init(const Mutex &, latch_id_t, const char *, uint32_t) 1
Definition: sync0policy.h:202
void enter(const Mutex &, const char *, ulint line) 1
Definition: sync0policy.h:204
NoPolicy()=default
Default constructor.
latch_id_t get_id() const
void release(const Mutex &) 1
Definition: sync0policy.h:207
void destroy() 1
Definition: sync0policy.h:203
void locked(const Mutex &, const char *, ulint) 1
Definition: sync0policy.h:206
All (ordered) latches, used in debugging, must derive from this class.
Definition: sync0types.h:961
constexpr uint32_t MUTEX_MAGIC_N
Definition: sync0policy.h:47
void sync_file_created_register(const void *ptr, const char *filename, uint16_t line)
Register a latch, called when it is created.
Definition: sync0debug.cc:1645
latch_meta_t & sync_latch_get_meta(latch_id_t id)
Get the latch meta-data from the latch ID.
Definition: sync0types.h:882
latch_id_t
Each latch has an ID.
Definition: sync0types.h:342
const char * sync_basename(const char *filename)
Print the filename "basename".
Definition: sync0sync.cc:217
void sync_file_created_deregister(const void *ptr)
Deregister a latch, called when it is destroyed.
Definition: sync0debug.cc:1652
Version control for database, common definitions, and include files.
#define IF_DEBUG(...)
Definition: univ.i:673
#define UNIV_NOTHROW
Definition: univ.i:455
unsigned long int ulint
Definition: univ.i:405
constexpr ulint ULINT_UNDEFINED
The 'undefined' value for a ulint.
Definition: univ.i:419
#define ut_ad(EXPR)
Debug assertion.
Definition: ut0dbg.h:68
#define ut_d(EXPR)
Debug statement.
Definition: ut0dbg.h:70
Random numbers and hashing.
unsigned long id[MAX_DEAD]
Definition: xcom_base.cc:509