1 #ifndef UTIL___MUTEX_POOL__HPP
2 #define UTIL___MUTEX_POOL__HPP
117 : m_Initialized(
false)
123 : m_Initialized(
false)
129 _ASSERT(!m_Mutex || m_Mutex->ReferencedOnlyOnce());
void Guard(resource_type &resource)
Manually force the guard to protect some other resource.
void Release()
Manually force the resource to be released.
CInitGuard(const CInitGuard &)
DECLARE_OPERATOR_BOOL(!m_Init)
CInitMutexPool::TMutex TMutex
const CInitGuard & operator=(const CInitGuard &)
CInitGuard(CInitMutex_Base &init, CInitMutexPool &pool, EForce)
void ForceGuard(CInitMutex_Base &init, CInitMutexPool &pool)
CInitGuard(CInitMutex_Base &init, CInitMutexPool &pool)
CInitMutexPool & GetPool(void) const
CPoolMutex(CInitMutexPool &pool)
list< CRef< TMutex > > TMutexList
const CInitMutexPool & operator=(const CInitMutexPool &)
CInitMutexPool(const CInitMutexPool &)
bool AcquireMutex(CInitMutex_Base &init, CRef< TMutex > &mutex, bool force=false)
const CInitMutex_Base & operator=(const CInitMutex_Base &)=delete
atomic< bool > m_Initialized
DECLARE_OPERATOR_BOOL(m_Initialized.load(memory_order_acquire))
CInitMutexPool::TMutex TMutex
TObjectType * GetPointerOrNull(void)
const TObjectType * GetPointerOrNull(void) const
TObjectType * operator->(void)
TObjectType & GetObject(void)
const TObjectType & operator*(void) const
const TObjectType & GetObject(void) const
void Reset(TObjectType *object)
const TObjectType * GetPointer(void) const
TObjectType & operator*(void)
const TObjectType * operator->(void) const
TObjectType * GetPointer(void)
const CInitMutex< TObjectType > & operator=(const CRef< TObjectType > &ref)
Include a standard set of the NCBI C++ Toolkit most basic headers.
static void DLIST_NAME() init(DLIST_LIST_TYPE *list)
TObjectType * GetNCPointerOrNull(void) const THROWS_NONE
Get pointer value.
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
TObjectType & GetObject(void)
Get object.
TObjectType * GetPointerOrNull(void) THROWS_NONE
Get pointer value.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Multi-threading – mutexes; rw-locks; semaphore.
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
NCBI_XUTIL_EXPORT
Parameter to control printing diagnostic message about conversion of static array data from a differe...