From aaef9cb9d469ffb94ef0694c7b47e521887a6679 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Fri, 19 Jul 2013 06:31:28 +0000 Subject: Closed #1690: Assertion in timer in SIP transaction: Timer being rescheduled when already running git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4567 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib/include/pj/timer.h | 9 +++++++++ pjlib/src/pj/timer.c | 5 +++++ 2 files changed, 14 insertions(+) (limited to 'pjlib') diff --git a/pjlib/include/pj/timer.h b/pjlib/include/pj/timer.h index 59149385..df6155a8 100644 --- a/pjlib/include/pj/timer.h +++ b/pjlib/include/pj/timer.h @@ -212,6 +212,15 @@ PJ_DECL(pj_timer_entry*) pj_timer_entry_init( pj_timer_entry *entry, void *user_data, pj_timer_heap_callback *cb ); +/** + * Queries whether a timer entry is currently running. + * + * @param entry The timer entry to query. + * + * @return PJ_TRUE if the timer is running. PJ_FALSE if not. + */ +PJ_DECL(pj_bool_t) pj_timer_entry_running( pj_timer_entry *entry ); + /** * Schedule a timer entry which will expire AFTER the specified delay. * diff --git a/pjlib/src/pj/timer.c b/pjlib/src/pj/timer.c index b9205c81..931a57fa 100644 --- a/pjlib/src/pj/timer.c +++ b/pjlib/src/pj/timer.c @@ -466,6 +466,11 @@ PJ_DEF(pj_timer_entry*) pj_timer_entry_init( pj_timer_entry *entry, return entry; } +PJ_DEF(pj_bool_t) pj_timer_entry_running( pj_timer_entry *entry ) +{ + return (entry->_timer_id >= 1); +} + #if PJ_TIMER_DEBUG static pj_status_t schedule_w_grp_lock_dbg(pj_timer_heap_t *ht, pj_timer_entry *entry, -- cgit v1.2.3