void broadcast() { xbt_cond_broadcast(cond); }
void signal() { xbt_cond_signal(cond); }
void wait(mutex_t& mutex) { xbt_cond_wait(cond, mutex.mutex); }
- void timedwait(mutex_t& mutex, double delay) {
- xbt_cond_timedwait(cond, mutex.mutex, delay);
+ bool timedwait(mutex_t& mutex, double delay) {
+ if (xbt_cond_timedwait(cond, mutex.mutex, delay)) {
+ mutex.acquire();
+ return false; // got a timeout
+ }
+ return true;
}
private: