diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2012-06-07 04:10:22 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2012-06-07 04:10:22 +0000 |
commit | 394701459d2bb65c4cdedb75b0c3cc1ac226c019 (patch) | |
tree | 16ab893923403355de0f938046fb228d67924d4f /pjmedia/src | |
parent | 02716b535c1eb8d3e0df5406209d1558c3257465 (diff) |
Fix #1531: fixed memory and handle leak issue in clock thread.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4160 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia/clock_thread.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/pjmedia/src/pjmedia/clock_thread.c b/pjmedia/src/pjmedia/clock_thread.c index b4ed2363..3423bf21 100644 --- a/pjmedia/src/pjmedia/clock_thread.c +++ b/pjmedia/src/pjmedia/clock_thread.c @@ -165,11 +165,9 @@ PJ_DEF(pj_status_t) pjmedia_clock_create2(pj_pool_t *pool, PJ_ASSERT_RETURN(pool && param->usec_interval && param->clock_rate && p_clock, PJ_EINVAL); - pool = pj_pool_create(pool->factory, "clock%p", 512, 512, NULL); - clock = PJ_POOL_ALLOC_T(pool, pjmedia_clock); - clock->pool = pool; - + clock->pool = pj_pool_create(pool->factory, "clock%p", 512, 512, NULL); + status = pj_get_timestamp_freq(&clock->freq); if (status != PJ_SUCCESS) return status; @@ -225,7 +223,7 @@ PJ_DEF(pj_status_t) pjmedia_clock_start(pjmedia_clock *clock) status = pj_thread_create(clock->pool, "clock", &clock_thread, clock, 0, 0, &clock->thread); if (status != PJ_SUCCESS) { - pj_lock_destroy(clock->lock); + clock->running = PJ_FALSE; return status; } } @@ -246,7 +244,9 @@ PJ_DEF(pj_status_t) pjmedia_clock_stop(pjmedia_clock *clock) if (clock->thread) { if (pj_thread_join(clock->thread) == PJ_SUCCESS) { + pj_thread_destroy(clock->thread); clock->thread = NULL; + pj_pool_reset(clock->pool); } else { clock->quitting = PJ_FALSE; } |