libjmmcg  build_2783
A C++ library containing an eclectic mix of useful, advanced components.
jmmcg::ppd::NTUtils::recursive_anon_mutex Class Reference

#include <NTLocking.hpp>

Inheritance diagram for jmmcg::ppd::NTUtils::recursive_anon_mutex:
[legend]
Collaboration diagram for jmmcg::ppd::NTUtils::recursive_anon_mutex:
[legend]

Public Types

typedef lock::lockable< api_lock_traits< ppd::generic_traits::MS_Win32, heavyweight_threading > > base_t
 
typedef base_t::lock_traits lock_traits
 
typedef lock_traits::exception_type exception_type
 
typedef lock::in_process< recursive_anon_mutexlock_type
 
typedef lock_type read_lock_type
 
typedef lock_type write_lock_type
 
typedef lock::in_process_unlockable< recursive_anon_mutexunlockable_type
 
typedef unlockable_type read_unlockable_type
 
typedef unlockable_type write_unlockable_type
 
- Public Types inherited from jmmcg::ppd::lock::lockable< lock_traits >
using lock_traits = lock_traits
 
typedef lock_traits::atomic_state_type atomic_state_type
 
typedef lock_traits::timeout_type timeout_type
 

Public Member Functions

__stdcall recursive_anon_mutex (const SECURITY_ATTRIBUTES *const sa=NULL)
 
virtual __stdcall ~recursive_anon_mutex () noexcept(true)
 
const SECURITY_ATTRIBUTES *const __fastcall SA () const noexcept(true)
 
__fastcall operator handle_type () noexcept(true)
 
atomic_state_type __fastcall lock (const timeout_type period) noexcept(true)
 
atomic_state_type __fastcall lock () noexcept(true)
 
atomic_state_type __fastcall unlock () noexcept(true)
 
void decay () noexcept(true)
 
- Public Member Functions inherited from jmmcg::ppd::lock::lockable< lock_traits >
virtual atomic_state_type __fastcall try_lock () noexcept(true) FORCE_INLINE
 

Static Public Attributes

static constexpr generic_traits::memory_access_modes memory_access_mode =generic_traits::memory_access_modes::erew_memory_access
 

Friends

class recursive_mutex
 

Additional Inherited Members

- Protected Member Functions inherited from jmmcg::non_copyable
 non_copyable ()=default
 
 ~non_copyable ()=default
 
 non_copyable (non_copyable const &)=delete
 
 non_copyable (non_copyable &&)=delete
 
void operator= (non_copyable const &)=delete
 
void operator= (non_copyable &&)=delete
 

Detailed Description

Definition at line 87 of file NTLocking.hpp.

Member Typedef Documentation

◆ base_t

Definition at line 89 of file NTLocking.hpp.

◆ exception_type

typedef lock_traits::exception_type jmmcg::ppd::NTUtils::recursive_anon_mutex::exception_type

Definition at line 91 of file NTLocking.hpp.

◆ lock_traits

◆ lock_type

◆ read_lock_type

◆ read_unlockable_type

◆ unlockable_type

◆ write_lock_type

◆ write_unlockable_type

Constructor & Destructor Documentation

◆ recursive_anon_mutex()

__stdcall jmmcg::ppd::NTUtils::recursive_anon_mutex::recursive_anon_mutex ( const SECURITY_ATTRIBUTES *const  sa = NULL)
inlineexplicit

Definition at line 103 of file NTLocking.hpp.

◆ ~recursive_anon_mutex()

virtual __stdcall jmmcg::ppd::NTUtils::recursive_anon_mutex::~recursive_anon_mutex ( )
inlinevirtualnoexcept

Definition at line 108 of file NTLocking.hpp.

Member Function Documentation

◆ decay()

void jmmcg::ppd::NTUtils::recursive_anon_mutex::decay ( )
inlinenoexcept

Definition at line 127 of file NTLocking.hpp.

◆ lock() [1/2]

atomic_state_type __fastcall jmmcg::ppd::NTUtils::recursive_anon_mutex::lock ( )
inlinevirtualnoexcept

Implements jmmcg::ppd::lock::lockable< lock_traits >.

Definition at line 121 of file NTLocking.hpp.

◆ lock() [2/2]

atomic_state_type __fastcall jmmcg::ppd::NTUtils::recursive_anon_mutex::lock ( const timeout_type  period)
inlinevirtualnoexcept

Implements jmmcg::ppd::lock::lockable< lock_traits >.

Definition at line 118 of file NTLocking.hpp.

◆ operator handle_type()

__fastcall jmmcg::ppd::NTUtils::recursive_anon_mutex::operator handle_type ( )
inlinenoexcept

Definition at line 115 of file NTLocking.hpp.

◆ SA()

const SECURITY_ATTRIBUTES* const __fastcall jmmcg::ppd::NTUtils::recursive_anon_mutex::SA ( ) const
inlinenoexcept

Definition at line 112 of file NTLocking.hpp.

◆ unlock()

atomic_state_type __fastcall jmmcg::ppd::NTUtils::recursive_anon_mutex::unlock ( )
inlinevirtualnoexcept

Implements jmmcg::ppd::lock::lockable< lock_traits >.

Definition at line 124 of file NTLocking.hpp.

Friends And Related Function Documentation

◆ recursive_mutex

friend class recursive_mutex
friend

Definition at line 130 of file NTLocking.hpp.

Member Data Documentation

◆ memory_access_mode

constexpr generic_traits::memory_access_modes jmmcg::ppd::NTUtils::recursive_anon_mutex::memory_access_mode =generic_traits::memory_access_modes::erew_memory_access
staticconstexpr

To assist in allowing compile-time computation of the algorithmic order of the threading model.

Definition at line 101 of file NTLocking.hpp.


The documentation for this class was generated from the following file: