1 #pragma once 2 3 namespace MT 4 { 5 class ThreadBase 6 { 7 protected: 8 void * funcData; 9 TThreadEntryPoint func; 10 public: 11 12 MT_NOCOPYABLE(ThreadBase); 13 14 ThreadBase() 15 : funcData(nullptr) 16 , func(nullptr) 17 { 18 } 19 20 static void SpinSleepMicroSeconds(uint32 microseconds) 21 { 22 int64 desiredTime = GetTimeMicroSeconds() + microseconds; 23 while(GetTimeMicroSeconds() <= desiredTime) {} 24 } 25 26 static void SpinSleepMilliSeconds(uint32 milliseconds) 27 { 28 int64 desiredTime = GetTimeMilliSeconds() + milliseconds; 29 while(GetTimeMilliSeconds() <= desiredTime) {} 30 } 31 32 // obsolete 33 static void SpinSleep(uint32 milliseconds) 34 { 35 SpinSleepMilliSeconds(milliseconds); 36 } 37 38 }; 39 } 40 41 42