Collaboration diagram for Threads:
|
Classes | |
| class | CThreadSystemID |
| CThreadSystemID --. More... | |
| class | CMutexException |
| CMutexException --. More... | |
| struct | SSystemFastMutex |
| SSystemFastMutex --. More... | |
| struct | SSystemMutex |
| SSystemMutex --. More... | |
| class | CAutoInitializeStaticFastMutex |
| CAutoInitializeStaticFastMutex --. More... | |
| class | CAutoInitializeStaticMutex |
| CAutoInitializeStaticMutex --. More... | |
| class | CFastMutex |
| CFastMutex --. More... | |
| class | CMutex |
| CMutex --. More... | |
| class | CSpinLock |
| CSpinLock --. More... | |
| struct | SSimpleReadLock< Class > |
| SSimpleReadLock --. More... | |
| struct | SSimpleWriteLock< Class > |
| SSimpleWriteLock --. More... | |
| class | CRWLock |
| CRWLock --. More... | |
| struct | SSimpleReadUnlock< Class > |
| SSimpleReadUnlock --. More... | |
| struct | SSimpleWriteUnlock< Class > |
| SSimpleWriteUnlock --. More... | |
| class | CFastRWLock |
| CFastRWLock --. More... | |
| class | IRWLockHolder_Listener |
| Interface for receiving messages about state changes in CRWLockHolder. More... | |
| class | IRWLockHolder_Factory |
| Interface for factory creating CRWLockHolder objects. More... | |
| class | CRWLockHolder |
| Holder of the lock inside CYieldingRWLock. More... | |
| class | CYieldingRWLock |
| Read/write lock without blocking calls. More... | |
| class | CSemaphore |
| CSemaphore --. More... | |
| class | CTlsBase |
| CTlBase --. More... | |
| class | CTls< TValue > |
| CTls --. More... | |
| class | CStaticTls< TValue > |
| class | CUsedTlsBases |
| class | CThread |
| CThread --. More... | |
| class | CLockVector< BV > |
| Class implements bit-vector based lock storage registering millions of int numbered objects. More... | |
| class | CLockVectorGuard< TLockVect > |
| Lock guard for the CLockVector. More... | |
Defines | |
| #define | NCBI_SCHED_YIELD() |
| #define | NCBI_SCHED_SPIN_INIT() |
| #define | NCBI_SCHED_SPIN_YIELD() |
| #define | NCBI_COUNTER_UNSIGNED 1 |
| #define | NCBI_COUNTER_NEED_MUTEX 1 |
| #define | NCBI_SWAP_POINTERS_EXTERN 1 |
| #define | NCBI_SLOW_ATOMIC_SWAP 1 |
| #define | INTERNAL_MUTEX_DEBUG |
| Mutex debug setting. | |
| #define | WRITE_MUTEX_EVENT(mutex, message) ((void)0) |
| #define | THREAD_SYSTEM_ID_INITIALIZER { 0 } |
| Use in defining initial value of system mutex. | |
| #define | NEED_AUTO_INITIALIZE_MUTEX |
| Auto initialization for mutex will be used. | |
| #define | DEFINE_STATIC_FAST_MUTEX(id) static NCBI_NS_NCBI::CAutoInitializeStaticFastMutex id |
| Define auto-initialized static fast mutex. | |
| #define | DECLARE_CLASS_STATIC_FAST_MUTEX(id) static NCBI_NS_NCBI::CAutoInitializeStaticFastMutex id |
| Declare auto-initialized static fast mutex. | |
| #define | DEFINE_CLASS_STATIC_FAST_MUTEX(id) NCBI_NS_NCBI::CAutoInitializeStaticFastMutex id |
| Define auto-initialized mutex. | |
| #define | DEFINE_STATIC_MUTEX(id) static NCBI_NS_NCBI::CAutoInitializeStaticMutex id |
| Define auto-initialized static mutex. | |
| #define | DECLARE_CLASS_STATIC_MUTEX(id) static NCBI_NS_NCBI::CAutoInitializeStaticMutex id |
| Declare auto-initialized static mutex. | |
| #define | DEFINE_CLASS_STATIC_MUTEX(id) NCBI_NS_NCBI::CAutoInitializeStaticMutex id |
| Define auto-initialized mutex. | |
| #define | NCBI_STATIC_TLS_VIA_SAFE_STATIC_REF 1 |
Typedefs | |
| typedef unsigned int | TNCBIAtomicValue |
| Define platform specific atomic-operations macros/values. | |
| typedef CGuard< SSystemFastMutex > | TFastMutexGuard |
| typedefs for ease of use | |
| typedef TFastMutexGuard | CFastMutexGuard |
| ...and backward compatibility | |
| typedef CGuard< SSystemMutex > | TMutexGuard |
| typedefs for ease of use | |
| typedef TMutexGuard | CMutexGuard |
| ...and backward compatibility | |
| typedef CNoLock | CNoMutex |
| CNoMutex --. | |
| typedef CGuard< CSpinLock > | CSpinGuard |
| typedef CGuard< CRWLock, SSimpleReadLock< CRWLock > > | TReadLockGuard |
| typedef TReadLockGuard | CReadLockGuard |
| typedef CGuard< CRWLock, SSimpleWriteLock< CRWLock > > | TWriteLockGuard |
| typedef TWriteLockGuard | CWriteLockGuard |
| typedef CGuard< CFastRWLock, SSimpleReadLock< CFastRWLock >, SSimpleReadUnlock< CFastRWLock > > | CFastReadGuard |
| typedef CGuard< CFastRWLock, SSimpleWriteLock< CFastRWLock >, SSimpleWriteUnlock< CFastRWLock > > | CFastWriteGuard |
| typedef CIRef< IRWLockHolder_Listener > | TRWLockHolder_ListenerRef |
| Types of smart references to IRWLockHolder_Listener. | |
| typedef CWeakIRef< IRWLockHolder_Listener > | TRWLockHolder_ListenerWeakRef |
| typedef CRef< CRWLockHolder > | TRWLockHolderRef |
| Type that should be always used to store pointers to CRWLockHolder. | |
| typedef void * | TTlsKey |
| Define internal TLS key type. | |
| typedef int | TThreadHandle |
| Define platform-dependent thread handle type. | |
| typedef int | TThreadSystemID |
| Define platform-dependent thread ID type. | |
| typedef void * | TWrapperRes |
| Define platform-dependent result wrapper. | |
| typedef void * | TWrapperArg |
| Define platform-dependent argument wrapper. | |
Enumerations | |
| enum | ERWLockType { eReadLock = 0, eWriteLock = 1 } |
| Type of locking provided by CYieldingRWLock. More... | |
Functions | |
| void * | NCBI_SwapPointers (void *volatile *location, void *new_value) |
| CLockVectorGuard::CLockVectorGuard (TLockVector &lvect, unsigned timeout_ms) | |
| Construct without locking. | |
| CLockVectorGuard::CLockVectorGuard (TLockVector &lvect, unsigned id, unsigned timeout_ms) | |
| Construct and lock. | |
| CLockVectorGuard::~CLockVectorGuard () | |
| void | CLockVectorGuard::DoLock () |
| Lock acquisition. | |
| void | CLockVectorGuard::Lock (unsigned id) |
| Acquire lock. | |
| void | CLockVectorGuard::Unlock () |
| Unlocks the lock. | |
| void | CLockVectorGuard::TakeFrom (CLockVectorGuard &lg) |
| Transfer lock ownership from another lock. | |
| CLockVector::CLockVector () | |
| CLockVector::~CLockVector () | |
| bool | CLockVector::TryLock (unsigned id) |
| Try to acquire lock of specified id. | |
| bool | CLockVector::Unlock (unsigned id) |
| Unlock object. | |
| void | CLockVector::FreeUnusedMem () |
| Reclaim unused memory. | |
| bool | CLockVector::IsLocked (unsigned id) const |
| Check if id is locked or not. | |
|
|
Declare auto-initialized static fast mutex.
Definition at line 500 of file ncbimtx.hpp. |
|
|
Declare auto-initialized static mutex.
Definition at line 512 of file ncbimtx.hpp. |
|
|
Define auto-initialized mutex.
Definition at line 504 of file ncbimtx.hpp. |
|
|
Define auto-initialized mutex.
Definition at line 516 of file ncbimtx.hpp. |
|
|
Define auto-initialized static fast mutex.
Definition at line 496 of file ncbimtx.hpp. Referenced by CODBCContext::CODBCContext(), CGiCache::GetInstance(), CEntrezCache::GetInstance(), CPluginManagerGetterImpl::GetMutex(), CObjectStoreProtectedBase::GetMutex(), s_CodingPropensity(), s_LoadGuide(), s_SerFlags(), and CFeature_table_reader::x_InitImplementation(). |
|
|
Define auto-initialized static mutex.
Definition at line 508 of file ncbimtx.hpp. Referenced by CSeqFeatData::GetBondList(), CSeqFeatData::GetFeatList(), CSeqFetchQueue::GetInstance(), CGuiRegistry::GetInstance(), CBookmarkManager::GetInstance(), CProjectViewLinkManager::GetInstance(), CSeqFeatData::GetSiteList(), impl::CDriverContext::ResetEnvSybase(), s_CreateDefaultColorTable(), and CParamBase::s_GetLock(). |
|
|
Mutex debug setting.
Definition at line 75 of file ncbimtx.hpp. |
|
|
Definition at line 256 of file ncbi_atomic_defs.h. |
|
|
Definition at line 252 of file ncbi_atomic_defs.h. |
|
|
Definition at line 69 of file ncbi_atomic_defs.h. Referenced by CAtomicCounter::Get(), and NCBI_SwapPointers(). |
|
|
Definition at line 70 of file ncbi_atomic_defs.h. Referenced by CAtomicCounter::Get(), and NCBI_SwapPointers(). |
|
|
Definition at line 68 of file ncbi_atomic_defs.h. Referenced by CFastRWLock::WriteLock(). |
|
|
Definition at line 262 of file ncbi_atomic_defs.h. |
|
|
Definition at line 203 of file ncbithr.hpp. |
|
|
Definition at line 261 of file ncbi_atomic_defs.h. |
|
|
Auto initialization for mutex will be used.
Definition at line 493 of file ncbimtx.hpp. |
|
|
Use in defining initial value of system mutex.
Definition at line 207 of file ncbimtx.hpp. Referenced by CDiagContextThreadData::GetThreadData(). |
|
|
Definition at line 104 of file ncbimtx.hpp. Referenced by SSystemFastMutex::DestroyHandle(), SSystemFastMutex::InitializeHandle(), SSystemFastMutex::Lock(), SSystemFastMutex::TryLock(), and SSystemFastMutex::Unlock(). |
|
|
...and backward compatibility
Definition at line 366 of file ncbimtx.hpp. |
|
|
Definition at line 1014 of file ncbimtx.hpp. |
|
|
Definition at line 1033 of file ncbimtx.hpp. |
|
|
...and backward compatibility
Definition at line 452 of file ncbimtx.hpp. |
|
|
CNoMutex --. Fake mutex that does not lock anything. Allows to create template classes which use CMutex/CFastMutex/CNoMutex as an argument. In case of CNoMutex no real locking is performed.
Definition at line 790 of file ncbimtx.hpp. |
|
|
Definition at line 875 of file ncbimtx.hpp. |
|
|
Definition at line 793 of file ncbimtx.hpp. |
|
|
Definition at line 893 of file ncbimtx.hpp. |
|
|
typedefs for ease of use
Definition at line 363 of file ncbimtx.hpp. |
|
|
typedefs for ease of use
Definition at line 449 of file ncbimtx.hpp. |
|
|
Define platform specific atomic-operations macros/values. TNCBIAtomicValue "type" is defined based on facilities available for a compiler/platform. TNCBIAtomicValue is used in the CAtomicCounter class for defining the internal represntation of the counter. Where possible NCBI_COUNTER_ADD is defined in terms of compiler/platform specific features, favoring inline assembly over standard library calls as function-call overhead can be appreciable, particularly on x86. Definition at line 251 of file ncbi_atomic_defs.h. |
|
|
Definition at line 874 of file ncbimtx.hpp. |
|
|
Types of smart references to IRWLockHolder_Listener.
Definition at line 1132 of file ncbimtx.hpp. |
|
|
Definition at line 1133 of file ncbimtx.hpp. |
|
|
Type that should be always used to store pointers to CRWLockHolder.
Definition at line 1230 of file ncbimtx.hpp. |
|
|
Define platform-dependent thread handle type.
Definition at line 111 of file ncbithr_conf.hpp. |
|
|
Define platform-dependent thread ID type.
Definition at line 114 of file ncbithr_conf.hpp. |
|
|
Define internal TLS key type.
Definition at line 108 of file ncbithr_conf.hpp. |
|
|
Define platform-dependent argument wrapper.
Definition at line 120 of file ncbithr_conf.hpp. |
|
|
Define platform-dependent result wrapper.
Definition at line 117 of file ncbithr_conf.hpp. |
|
|
Definition at line 892 of file ncbimtx.hpp. |
|
|
Type of locking provided by CYieldingRWLock.
Definition at line 1109 of file ncbimtx.hpp. |
|
|||||||||
|
Definition at line 281 of file lock_vector.hpp. |
|
||||||||||||||||||||
|
Construct and lock.
Definition at line 182 of file lock_vector.hpp. References _ASSERT, and CLockVectorGuard< TLockVect >::DoLock(). |
|
||||||||||||||||
|
Construct without locking.
Definition at line 170 of file lock_vector.hpp. |
|
|||||||||
|
Lock acquisition.
Definition at line 208 of file lock_vector.hpp. References _ASSERT, CLockVectorGuard< TLockVect >::m_Id, CLockVectorGuard< TLockVect >::m_LockSet, CLockVectorGuard< TLockVect >::m_LockVector, and CLockVectorGuard< TLockVect >::m_Spins. Referenced by CLockVectorGuard< TLockVect >::CLockVectorGuard(), and CLockVectorGuard< TLockVect >::Lock(). |
|
|||||||||
|
Reclaim unused memory.
Definition at line 315 of file lock_vector.hpp. References CLockVector< BV >::m_IdVector, and CLockVector< BV >::m_IdVector_Lock. |
|
||||||||||
|
Check if id is locked or not.
Definition at line 322 of file lock_vector.hpp. References CLockVector< BV >::m_IdVector, and CLockVector< BV >::m_IdVector_Lock. Referenced by CBDB_Cache::IsLocked(). |
|
||||||||||
|
Acquire lock.
Definition at line 247 of file lock_vector.hpp. References CLockVectorGuard< TLockVect >::DoLock(), CLockVectorGuard< TLockVect >::m_Id, and CLockVectorGuard< TLockVect >::Unlock(). Referenced by CBDB_Cache::BlobCheckIn(). |
|
||||||||||||
|
Definition at line 65 of file ncbiatomic.h. References NCBI_SCHED_SPIN_INIT, and NCBI_SCHED_SPIN_YIELD. Referenced by SwapPointers(), and TRIGGER_Set(). |
|
||||||||||
|
Transfer lock ownership from another lock.
Definition at line 271 of file lock_vector.hpp. References CLockVectorGuard< TLockVect >::m_Id, CLockVectorGuard< TLockVect >::m_LockSet, CLockVectorGuard< TLockVect >::m_LockVector, CLockVectorGuard< TLockVect >::Release(), and CLockVectorGuard< TLockVect >::Unlock(). Referenced by CBDB_CacheIReader::CBDB_CacheIReader(), and CBDB_CacheIWriter::CBDB_CacheIWriter(). |
|
||||||||||
|
Try to acquire lock of specified id.
Definition at line 296 of file lock_vector.hpp. References CLockVector< BV >::m_IdVector, and CLockVector< BV >::m_IdVector_Lock. Referenced by CBDB_Cache::GetNextBlobId(). |
|
||||||||||
|
Unlock object.
Definition at line 304 of file lock_vector.hpp. References _ASSERT, CLockVector< BV >::m_IdVector, and CLockVector< BV >::m_IdVector_Lock. |
|
|||||||||
|
Unlocks the lock.
Definition at line 255 of file lock_vector.hpp. References _ASSERT, CLockVectorGuard< TLockVect >::m_Id, CLockVectorGuard< TLockVect >::m_LockSet, CLockVectorGuard< TLockVect >::m_LockVector, NCBI_THROW, and NStr::UIntToString(). Referenced by CLockVectorGuard< TLockVect >::Lock(), CLockVectorGuard< TLockVect >::TakeFrom(), and CLockVectorGuard< TLockVect >::~CLockVectorGuard(). |
|
|||||||||
|
Definition at line 287 of file lock_vector.hpp. References ERR_POST_XX, and CLockVector< BV >::m_IdVector. |
|
|||||||||
|
Definition at line 196 of file lock_vector.hpp. References ERR_POST_XX, and CLockVectorGuard< TLockVect >::Unlock(). |
1.4.6
Modified on Wed Dec 09 08:20:18 2009 by modify_doxy.py rev. 173732