提交 6cdb09dd authored 作者: Anthony Minessale's avatar Anthony Minessale

auto-sync idle timers

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13161 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 b27dbfd2
...@@ -324,7 +324,12 @@ static switch_status_t timer_next(switch_timer_t *timer) ...@@ -324,7 +324,12 @@ static switch_status_t timer_next(switch_timer_t *timer)
#else #else
int cond_index = 1; int cond_index = 1;
#endif #endif
int delta = (int)(private_info->reference - TIMER_MATRIX[timer->interval].tick);
/* sync up timer if it's not been called for a while otherwise it will return instantly several times until it catches up */
if (delta < 0) {
private_info->reference = timer->tick = TIMER_MATRIX[timer->interval].tick;
}
timer_step(timer); timer_step(timer);
while (globals.RUNNING == 1 && private_info->ready && TIMER_MATRIX[timer->interval].tick < private_info->reference) { while (globals.RUNNING == 1 && private_info->ready && TIMER_MATRIX[timer->interval].tick < private_info->reference) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论