49#define PFS_LOCK_FREE 0x00
57#define PFS_LOCK_DIRTY 0x01
64#define PFS_LOCK_ALLOCATED 0x02
66#define VERSION_MASK 0xFFFFFFFC
67#define STATE_MASK 0x00000003
334 if (
copy->m_version_state != version_state) {
uint32_t uint32
Definition: my_inttypes.h:66
void copy(Shards< COUNT > &dst, const Shards< COUNT > &src) noexcept
Copy the counters, overwrite destination.
Definition: ut0counter.h:353
Definition: pfs_lock.h:74
uint32 m_version_state
Definition: pfs_lock.h:75
A 'lock' protecting performance schema internal buffers.
Definition: pfs_lock.h:151
bool is_populated(void)
Returns true if the record contains values that can be read.
Definition: pfs_lock.h:186
void dirty_to_allocated(const pfs_dirty_state *copy)
Execute a dirty to allocated transition.
Definition: pfs_lock.h:240
uint32 copy_version_state()
Definition: pfs_lock.h:170
bool is_free(void)
Returns true if the record is free.
Definition: pfs_lock.h:179
bool end_optimistic_lock(const pfs_optimistic_state *copy)
End an optimistic read operation.
Definition: pfs_lock.h:325
void allocated_to_free(void)
Execute an allocated to free transition.
Definition: pfs_lock.h:295
void allocated_to_dirty(pfs_dirty_state *copy_ptr)
Execute an allocated to dirty transition.
Definition: pfs_lock.h:222
void begin_optimistic_lock(pfs_optimistic_state *copy)
Start an optimistic read operation.
Definition: pfs_lock.h:315
void dirty_to_free(const pfs_dirty_state *copy)
Execute a dirty to free transition.
Definition: pfs_lock.h:282
uint32 get_version()
Definition: pfs_lock.h:341
void set_allocated(void)
Initialize a lock to allocated.
Definition: pfs_lock.h:256
std::atomic< uint32 > m_version_state
The record internal version and state.
Definition: pfs_lock.h:168
void set_dirty(pfs_dirty_state *copy_ptr)
Initialize a lock to dirty.
Definition: pfs_lock.h:268
bool free_to_dirty(pfs_dirty_state *copy_ptr)
Execute a free to dirty transition.
Definition: pfs_lock.h:198
Definition: pfs_lock.h:70
uint32 m_version_state
Definition: pfs_lock.h:71