ProcessMonitor* ProcessMonitor::self() { while (InterlockedExchange((LPLONG)&lLock, 1) != 0) _Sleep(1); if (Instance == NULL) Instance = new(std::nothrow) ProcessMonitor(); InterlockedExchange((LPLONG)&lLock, 0); return Instance; }
CPoomAddressbook* CPoomAddressbook::self() { while (InterlockedExchange((LPLONG)&lLock, 1) != 0) _Sleep(1); if (m_pInstance == NULL) m_pInstance = new(std::nothrow) CPoomAddressbook(); InterlockedExchange((LPLONG)&lLock, 0); return m_pInstance; }
void BackLightCallbackSlow(POWER_BROADCAST *powerBroadcast, DWORD dwUserData) { if (powerBroadcast == NULL || powerBroadcast->Length == 0 || (powerBroadcast->Message & PBT_TRANSITION) == FALSE) return; if (powerBroadcast->Flags & POWER_STATE_UNATTENDED || powerBroadcast->Flags & POWER_STATE_IDLE || powerBroadcast->Flags & POWER_STATE_USERIDLE) { // Light is going OFF InterlockedExchange((LPLONG)&(*(BOOL *)dwUserData), FALSE); } else { // Light is going ON Device* dev = Device::self(); _Sleep(500); if (dev->IsDeviceOn()) { DBG_TRACE(L"CallBacks.cpp BackLightCallbackSlow ON ", 5, FALSE); InterlockedExchange((LPLONG)&(*(BOOL *)dwUserData), TRUE); } } return; }
void SleepUntil( const Time& Tm ) { _Sleep ( Tm - SystemTime() ); }
void SleepUntil( const Duration& Dur ) { _Sleep ( Dur - ProgramTime() ); }
void Sleep( const Duration& Dur ) { _Sleep( Dur ); }