本文整理汇总了C++中Monitor::enter方法的典型用法代码示例。如果您正苦于以下问题:C++ Monitor::enter方法的具体用法?C++ Monitor::enter怎么用?C++ Monitor::enter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Monitor
的用法示例。
在下文中一共展示了Monitor::enter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sleep
bool Thread::sleep(unsigned int time)
{
bool rval = true;
// enter an arbitrary monitor
Monitor m;
m.enter();
{
// wait to re-enter the monitor until the specified time
uint32_t remaining = time;
uint64_t st = System::getCurrentMilliseconds();
uint64_t et;
uint64_t dt;
while(rval && (time == 0 || remaining > 0))
{
rval = waitToEnter(&m, remaining);
if(rval && time > 0)
{
// update remaining time
et = System::getCurrentMilliseconds();
dt = et - st;
remaining = (dt >= remaining ? 0 : remaining - dt);
st = et;
}
}
}
m.exit();
return rval;
}
示例2: interrupt
void Thread::interrupt()
{
lock();
// only interrupt if not already interrupted
if(!isInterrupted())
{
// set interrupted flag
mInterrupted = true;
// Note: disabled due to lack of support in windows
// send SIGINT to thread
//sendSignal(SIGINT);
// store thread's current monitor
Monitor* m = mWaitMonitor;
unlock();
// wake up thread it is inside of a monitor
if(m != NULL)
{
m->enter();
m->signalAll();
m->exit();
}
}
else
{
unlock();
}
}