compute scheduler thread timeout properly

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@14573 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Kevin P. Fleming 20 years ago
parent 39464dfe09
commit c26786fd81

@ -8264,13 +8264,16 @@ static void *sched_thread(void *ignore)
{ {
int count; int count;
int res; int res;
struct timeval tv;
struct timespec ts; struct timespec ts;
for (;;) { for (;;) {
res = ast_sched_wait(sched); res = ast_sched_wait(sched);
if ((res > 1000) || (res < 0)) if ((res > 1000) || (res < 0))
res = 1000; res = 1000;
ts.tv_sec = res; tv = ast_tvadd(ast_tvnow(), ast_samp2tv(res, 1000));
ts.tv_sec = tv.tv_sec;
ts.tv_nsec = tv.tv_usec * 1000;
ast_mutex_lock(&sched_lock); ast_mutex_lock(&sched_lock);
ast_cond_timedwait(&sched_cond, &sched_lock, &ts); ast_cond_timedwait(&sched_cond, &sched_lock, &ts);

Loading…
Cancel
Save