提交 f26dd3da authored 作者: Michael Jerris's avatar Michael Jerris

Wed Jan 28 12:09:00 CST 2009 Pekka Pessi <first.last@nokia.com>

  * su_port.h, su_timer.c: refactored su_timer_next_expires()
  



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11855 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 314d3883
Wed Feb 11 11:18:06 CST 2009 Wed Feb 11 11:18:29 CST 2009
...@@ -394,7 +394,7 @@ gboolean su_source_prepare(GSource *gs, gint *return_tout) ...@@ -394,7 +394,7 @@ gboolean su_source_prepare(GSource *gs, gint *return_tout)
now.tv_sec = gtimeval.tv_sec + 2208988800UL; now.tv_sec = gtimeval.tv_sec + 2208988800UL;
now.tv_usec = gtimeval.tv_usec; now.tv_usec = gtimeval.tv_usec;
tout = su_timer_next_expires(self->sup_base->sup_timers, now); tout = su_timer_next_expires(&self->sup_base->sup_timers, now);
*return_tout = (tout < 0 || tout > (su_duration_t)G_MAXINT)? *return_tout = (tout < 0 || tout > (su_duration_t)G_MAXINT)?
-1 : (gint)tout; -1 : (gint)tout;
......
...@@ -166,7 +166,7 @@ SOFIAPUBFUN su_port_t *su_port_create(void) ...@@ -166,7 +166,7 @@ SOFIAPUBFUN su_port_t *su_port_create(void)
/* Extension from >= 1.12.5 */ /* Extension from >= 1.12.5 */
SOFIAPUBFUN void su_msg_delivery_report(su_msg_r msg); SOFIAPUBFUN void su_msg_delivery_report(su_msg_r msg);
SOFIAPUBFUN su_duration_t su_timer_next_expires(su_timer_t const * t, SOFIAPUBFUN su_duration_t su_timer_next_expires(su_timer_queue_t const *timers,
su_time_t now); su_time_t now);
SOFIAPUBFUN su_root_t *su_root_create_with_port(su_root_magic_t *magic, SOFIAPUBFUN su_root_t *su_root_create_with_port(su_root_magic_t *magic,
su_port_t *port) su_port_t *port)
......
...@@ -581,25 +581,22 @@ int su_timer_expire(su_timer_queue_t * const timers, ...@@ -581,25 +581,22 @@ int su_timer_expire(su_timer_queue_t * const timers,
/** Calculate duration in milliseconds until next timer expires. */ /** Calculate duration in milliseconds until next timer expires. */
su_duration_t su_timer_next_expires(su_timer_t const * t, su_time_t now) su_duration_t su_timer_next_expires(su_timer_queue_t const *timers,
su_time_t now)
{ {
su_timer_queue_t *timers; su_duration_t next = SU_DURATION_MAX;
su_duration_t tout;
if (!t)
return SU_DURATION_MAX;
timers = su_task_timers(t->sut_task); su_timer_t const *t;
t = timers ? timers_get(timers[0], 1) : NULL; t = timers ? timers_get(timers[0], 1) : NULL;
if (!t) if (t) {
return SU_DURATION_MAX; next = su_duration(t->sut_when, now);
if (next < 0)
tout = su_duration(t->sut_when, now); next = 0;
}
return tout > 0 ? tout : 0 ; return next;
} }
/** /**
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论