diff options
author | Joshua Colp <jcolp@digium.com> | 2015-02-15 12:39:09 +0000 |
---|---|---|
committer | Joshua Colp <jcolp@digium.com> | 2015-02-15 12:39:09 +0000 |
commit | ce70587ba61f834af81e81bdee52badcdc493f18 (patch) | |
tree | eaab9990aa4c7744b7bd147f8fa3fe66c491c11d | |
parent | 4f4d03fdd12427a70accb6557efef7ef40cac3b0 (diff) |
res_timing_pthread: Fix leaky pipes.
During some refactoring the way private information for timers
was stored was changed. As a result of this the action which normally
removed the timer upon closure in res_timing_pthread was also removed
causing the timer to remain after it should using up resources.
This change ensures that the timer is removed upon closure.
ASTERISK-24768 #close
Reported by: Matthias Urlichs
patches:
timer.patch submitted by Matthias Urlichs (license 5508)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431807 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r-- | res/res_timing_pthread.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/res/res_timing_pthread.c b/res/res_timing_pthread.c index 81efbf8e7..1e76720ec 100644 --- a/res/res_timing_pthread.c +++ b/res/res_timing_pthread.c @@ -143,7 +143,7 @@ static void *pthread_timer_open(void) ast_cond_signal(&timing_thread.cond); ast_mutex_unlock(&timing_thread.lock); } - ao2_link(pthread_timers, timer); + ao2_link_flags(pthread_timers, timer, OBJ_NOLOCK); ao2_unlock(pthread_timers); return timer; @@ -153,6 +153,7 @@ static void pthread_timer_close(void *data) { struct pthread_timer *timer = data; + ao2_unlink(pthread_timers, timer); ao2_ref(timer, -1); } |