void LLThread::wakeLocked() { if(!shouldSleep()) { mRunCondition->signal(); } }
void LLThread::wake() { mRunCondition->lock(); if(!shouldSleep()) { mRunCondition->signal(); } mRunCondition->unlock(); }
//============================================================================ // Called from run() (CHILD THREAD). // Stop thread execution if requested until unpaused. void LLThread::checkPause() { mRunCondition->lock(); // This is in a while loop because the pthread API allows for spurious wakeups. while(shouldSleep()) { mRunCondition->wait(); // unlocks mRunCondition // mRunCondition is locked when the thread wakes up } mRunCondition->unlock(); }