threads: use mpv time for mpthread_cond_timedwait wrapper

Use the time as returned by mp_time_us() for mpthread_cond_timedwait(),
instead of calculating the struct timespec value based on a timeout.
This (probably) makes it easier to wait for a specific deadline.
This commit is contained in:
wm4
2014-05-18 16:36:08 +02:00
parent e209e44ca2
commit f47a4fc3d9
8 changed files with 99 additions and 63 deletions

View File

@@ -167,7 +167,7 @@ static int cache_wakeup_and_wait(struct priv *s, double *retry_time)
}
pthread_cond_signal(&s->wakeup);
mpthread_cond_timedwait(&s->wakeup, &s->mutex, CACHE_WAIT_TIME);
mpthread_cond_timedwait_rel(&s->wakeup, &s->mutex, CACHE_WAIT_TIME);
*retry_time += mp_time_sec() - start;
@@ -529,7 +529,7 @@ static void *cache_thread(void *arg)
s->control = CACHE_CTRL_NONE;
}
if (s->idle && s->control == CACHE_CTRL_NONE)
mpthread_cond_timedwait(&s->wakeup, &s->mutex, CACHE_IDLE_SLEEP_TIME);
mpthread_cond_timedwait_rel(&s->wakeup, &s->mutex, CACHE_IDLE_SLEEP_TIME);
}
pthread_cond_signal(&s->wakeup);
pthread_mutex_unlock(&s->mutex);