| 
    PMDK C++ bindings
    1.7
    
   This is the C++ bindings documentation for PMDK's libpmemobj. 
   | 
 
Persistent memory resident mutex implementation. More...
#include <libpmemobj++/mutex.hpp>
Public Types | |
| typedef PMEMmutex * | native_handle_type | 
| Implementation defined handle to the native type.  | |
Public Member Functions | |
| mutex () | |
| Default constructor.  More... | |
| ~mutex ()=default | |
| Defaulted destructor.  | |
| void | lock () | 
| Locks the mutex, blocks if already locked.  More... | |
| bool | try_lock () | 
| Tries to lock the mutex, returns regardless if the lock succeeds.  More... | |
| void | unlock () | 
| Unlocks a previously locked mutex.  More... | |
| native_handle_type | native_handle () noexcept | 
| Access a native handle to this condition variable.  More... | |
| enum pobj_tx_param | lock_type () const noexcept | 
| The type of lock needed for the transaction API.  More... | |
| mutex & | operator= (const mutex &)=delete | 
| Deleted assignment operator.  | |
| mutex (const mutex &)=delete | |
| Deleted copy constructor.  | |
Private Attributes | |
| PMEMmutex | plock | 
| A POSIX style PMEM-resident mutex.  | |
Persistent memory resident mutex implementation.
This class is an implementation of a PMEM-resident mutex which mimics in behavior the C++11 std::mutex. This class satisfies all requirements of the Mutex and StandardLayoutType concepts. The typical usage example would be:
      
  | 
  inline | 
Default constructor.
| lock_error | when the mutex is not from persistent memory. | 
      
  | 
  inline | 
Locks the mutex, blocks if already locked.
If a different thread already locked this mutex, the calling thread will block. If the same thread tries to lock a mutex it already owns, the behavior is undefined.
| lock_error | when an error occurs, this includes all system related errors with the underlying implementation of the mutex. | 
      
  | 
  inlinenoexcept | 
The type of lock needed for the transaction API.
      
  | 
  inlinenoexcept | 
Access a native handle to this condition variable.
      
  | 
  inline | 
Tries to lock the mutex, returns regardless if the lock succeeds.
If the same thread tries to lock a mutex it already owns, the behavior is undefined.
true on successful lock acquisition, false otherwise.| lock_error | when an error occurs, this includes all system related errors with the underlying implementation of the mutex. | 
      
  | 
  inline | 
Unlocks a previously locked mutex.
Unlocking a mutex that has not been locked by the current thread results in undefined behavior. Unlocking a mutex that has not been lock also results in undefined behavior.