15 #if defined (_WIN32) && defined(_MANAGED)
22 #if (_MSC_VER >= 1900)
24 #define BEMUTEX_DATA_ARRAY_LENGTH (80 / sizeof(void*))
25 #define BECONDITIONVARIABLE_DATA_ARRAY_LENGTH (88 / sizeof(void*))
27 #define BEMUTEX_DATA_ARRAY_LENGTH (48 / sizeof(void*))
28 #define BECONDITIONVARIABLE_DATA_ARRAY_LENGTH (48 / sizeof(void*))
31 #define BEMUTEX_DATA_ARRAY_LENGTH 1
32 #define BECONDITIONVARIABLE_DATA_ARRAY_LENGTH 2
39 #include <condition_variable>
40 #define BEMUTEX_DATA_ARRAY_LENGTH sizeof(std::recursive_mutex) / sizeof(void*)
41 #define BECONDITIONVARIABLE_DATA_ARRAY_LENGTH sizeof(std::condition_variable_any) / sizeof(void*)
173 return ProtectedWaitOnCondition(holder, predicate, timeoutMillis);
191 typedef unsigned (__stdcall *T_ThreadStart)(
void*);
197 BENTLEYDLL_EXPORT static uintptr_t StartNewThread (
int stackSize, T_ThreadStart startAddr,
void* arg);
#define BENTLEYDLL_EXPORT
Definition: Bentley.h:249
A synchronization primitive that can be used to block a thread, or multiple threads at the same time...
Definition: BeThread.h:132
A BeMutex ownership wrapper.
Definition: BeThread.h:82
void Enter()
Definition: BeThread.h:70
Together with the BeThread.h file provides Bentley specific thread handling functions (Bentley/BeCrit...
uint32_t UInt32
Definition: Bentley.r.h:128
bstdmap & operator=(const bstdmap &__rhs)
Definition: stdcxx/bstdmap.h:170
#define BEGIN_BENTLEY_NAMESPACE
Definition: Bentley.r.h:24
void Leave()
Definition: BeThread.h:74
BeMutex & GetMutex() const
Definition: BeThread.h:150
Utilities for dealing with threads !
Definition: BeThread.h:189
BeMutex * GetMutex()
Get the BeMutex associated with this BeMutexHolder.
Definition: BeThread.h:104
Lock
Definition: BeThread.h:93
A synchronization primitive that can be used to protect shared data from being simultaneously accesse...
Definition: BeThread.h:57
#define BECONDITIONVARIABLE_DATA_ARRAY_LENGTH
Definition: BeThread.h:41
bool WaitOnCondition(IConditionVariablePredicate *predicate, uint32_t timeoutMillis)
Enters the mutex, calls the predicate, and then waits on the condition if the predicate returns false...
Definition: BeThread.h:170
#define BEMUTEX_DATA_ARRAY_LENGTH
Definition: BeThread.h:40
Utf8Char const * Utf8CP
Definition: Bentley.h:229
Provides Bentley specific implementation of the std::atomic template class (Bentley/BeAtomic.h).
#define END_BENTLEY_NAMESPACE
Definition: Bentley.r.h:25
unsigned int uint32_t
Definition: Bentley.r.h:93
Provides implementation of predicate for a BeConditionVariable.
Definition: BeThread.h:117