51#define PFS_LOCK_FREE 0x00
59#define PFS_LOCK_DIRTY 0x01
66#define PFS_LOCK_ALLOCATED 0x02
68#define VERSION_MASK 0xFFFFFFFC
69#define STATE_MASK 0x00000003
338 return (
copy->m_version_state == version_state);
Some integer typedefs for easier portability.
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:76
uint32 m_version_state
Definition: pfs_lock.h:77
A 'lock' protecting performance schema internal buffers.
Definition: pfs_lock.h:153
void allocated_to_free()
Execute an allocated to free transition.
Definition: pfs_lock.h:299
bool is_populated()
Returns true if the record contains values that can be read.
Definition: pfs_lock.h:188
void dirty_to_allocated(const pfs_dirty_state *copy)
Execute a dirty to allocated transition.
Definition: pfs_lock.h:242
uint32 copy_version_state()
Definition: pfs_lock.h:172
bool end_optimistic_lock(const pfs_optimistic_state *copy)
End an optimistic read operation.
Definition: pfs_lock.h:329
void allocated_to_dirty(pfs_dirty_state *copy_ptr)
Execute an allocated to dirty transition.
Definition: pfs_lock.h:224
bool is_free()
Returns true if the record is free.
Definition: pfs_lock.h:181
void begin_optimistic_lock(pfs_optimistic_state *copy)
Start an optimistic read operation.
Definition: pfs_lock.h:319
void dirty_to_free(const pfs_dirty_state *copy)
Execute a dirty to free transition.
Definition: pfs_lock.h:285
uint32 get_version()
Definition: pfs_lock.h:341
std::atomic< uint32 > m_version_state
The record internal version and state.
Definition: pfs_lock.h:170
void set_dirty(pfs_dirty_state *copy_ptr)
Initialize a lock to dirty.
Definition: pfs_lock.h:271
void set_allocated()
Initialize a lock to allocated.
Definition: pfs_lock.h:258
bool free_to_dirty(pfs_dirty_state *copy_ptr)
Execute a free to dirty transition.
Definition: pfs_lock.h:200
Definition: pfs_lock.h:72
uint32 m_version_state
Definition: pfs_lock.h:73