SCOPED_MUTEX(lock, &tld->lock);
while (!tld->task_pushed) {
- ast_cond_timedwait(&tld->cond, lock, &end);
+ if (ast_cond_timedwait(&tld->cond, lock, &end) == ETIMEDOUT) {
+ break;
+ }
}
}
SCOPED_MUTEX(lock, &std->lock);
while (!std->task_executed) {
- ast_cond_timedwait(&std->cond, lock, &end);
+ if (ast_cond_timedwait(&std->cond, lock, &end) == ETIMEDOUT) {
+ break;
+ }
}
if (!std->task_executed) {
SCOPED_MUTEX(lock, &tld->lock);
while (!tld->empty_notice) {
- ast_cond_timedwait(&tld->cond, lock, &end);
+ if (ast_cond_timedwait(&tld->cond, lock, &end) == ETIMEDOUT) {
+ break;
+ }
}
if (!tld->empty_notice) {
SCOPED_MUTEX(lock, &ctd->lock);
while (!ctd->task_executed) {
- ast_cond_timedwait(&ctd->done_cond, lock, &end);
+ if (ast_cond_timedwait(&ctd->done_cond, lock, &end) == ETIMEDOUT) {
+ break;
+ }
}
if (!ctd->task_executed) {