38 #ifndef PMEMOBJ_MUTEX_HPP
39 #define PMEMOBJ_MUTEX_HPP
42 #include "libpmemobj/thread.h"
43 #include "libpmemobj/tx_base.h"
73 if ((pop = pmemobj_pool_by_ptr(&
plock)) ==
nullptr)
75 "Persistent mutex not from persistent"
78 pmemobj_mutex_zero(pop, &
plock);
100 PMEMobjpool *pop = pmemobj_pool_by_ptr(
this);
101 if (
int ret = pmemobj_mutex_lock(pop, &this->
plock))
103 "Failed to lock a mutex.");
123 PMEMobjpool *pop = pmemobj_pool_by_ptr(
this);
124 int ret = pmemobj_mutex_trylock(pop, &this->
plock);
128 else if (ret == EBUSY)
132 "Failed to lock a mutex.");
145 PMEMobjpool *pop = pmemobj_pool_by_ptr(
this);
146 (void)pmemobj_mutex_unlock(pop, &this->
plock);
168 return TX_PARAM_MUTEX;