summaryrefslogtreecommitdiff
path: root/pjlib
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2013-07-19 06:31:28 +0000
committerBenny Prijono <bennylp@teluu.com>2013-07-19 06:31:28 +0000
commitaaef9cb9d469ffb94ef0694c7b47e521887a6679 (patch)
treef09101e0e5e58287332968815b94fceb0a86f28a /pjlib
parent70a65732023c1e8cb0e037a909e73018a3604276 (diff)
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
Diffstat (limited to 'pjlib')
-rw-r--r--pjlib/include/pj/timer.h9
-rw-r--r--pjlib/src/pj/timer.c5
2 files changed, 14 insertions, 0 deletions
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
@@ -213,6 +213,15 @@ PJ_DECL(pj_timer_entry*) pj_timer_entry_init( pj_timer_entry *entry,
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.
*
* @param ht The timer heap.
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,