Ensure the timer heap is protected by a lock.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@369524 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/11.2
Joshua Colp 13 years ago
parent 09eb252721
commit c48d346d55

@ -3741,6 +3741,8 @@ static int reload_module(void)
static int load_module(void) static int load_module(void)
{ {
pj_lock_t *lock;
pj_log_set_level(0); pj_log_set_level(0);
if (pj_init() != PJ_SUCCESS) { if (pj_init() != PJ_SUCCESS) {
@ -3767,6 +3769,14 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE; return AST_MODULE_LOAD_DECLINE;
} }
if (pj_lock_create_recursive_mutex(pool, "rtp%p", &lock) != PJ_SUCCESS) {
pj_caching_pool_destroy(&cachingpool);
pj_shutdown();
return AST_MODULE_LOAD_DECLINE;
}
pj_timer_heap_set_lock(timerheap, lock, PJ_TRUE);
if (pj_ioqueue_create(pool, 16, &ioqueue) != PJ_SUCCESS) { if (pj_ioqueue_create(pool, 16, &ioqueue) != PJ_SUCCESS) {
pj_caching_pool_destroy(&cachingpool); pj_caching_pool_destroy(&cachingpool);
pj_shutdown(); pj_shutdown();

Loading…
Cancel
Save