11 #include "RNPlatform/Inc/MemoryTracking.h"
12 #ifndef __THREADCLASS_H__
13 #define __THREADCLASS_H__
26 #if defined(RN_UNIX_LIKE)
30 namespace RNReplicaNet
34 const unsigned int kTIME_INFINITE = 0xFFFFFFFF;
75 volatile int mOwnerThread;
77 std::list<int> mWaitingThreadIDs;
82 CRITICAL_SECTION mSection;
85 #if defined(RN_UNIX_LIKE)
86 pthread_mutex_t mLocalMutex;
115 void Sleep(
int milliseconds);
140 static size_t GetNumAllocated(
void)
142 return mNumAllocated;
146 void CallThreadExiting(
const int returnCode);
148 volatile bool mQuitNow;
151 volatile bool mThreadExitingCalled;
153 static volatile size_t mNumAllocated;
185 static void Sleep(
int milliseconds);
191 #define THREADSAFELOCK() RNReplicaNet::LockingMechanism _lock(this);
192 #define THREADSAFELOCKCLASS(x) RNReplicaNet::LockingMechanism _class_lock(&(x));
193 #define THREADSAFELOCKCLASSp(x) RNReplicaNet::LockingMechanism _class_lockp(x);
194 #define THREADSAFELOCKCLASSNAMED(x) RNReplicaNet::LockingMechanism _class_lock##x (&(x));
195 #define THREADSAFELOCKCLASSNAMEDp(x) RNReplicaNet::LockingMechanism _class_lockp##x (x);
void Sleep(int milliseconds)
Definition: ThreadClass.h:177
Definition: ThreadClass.h:159
static void Sleep(int milliseconds)
virtual void ThreadExiting(const int returnCode)
virtual ~LockingMechanism()
virtual int ThreadEntry(void)=0
Definition: ThreadClass.h:39
LockingMechanism(MutexClass *lockee)
void DoQuitNow(const int returnCode)
Definition: ThreadClass.h:96