diff options
author | Benny Prijono <bennylp@teluu.com> | 2006-11-21 12:39:31 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2006-11-21 12:39:31 +0000 |
commit | 271cf23083b38b3f0d12a36bb1f28e458ee43861 (patch) | |
tree | d3c5bc170635051fd0aaa3fa41ba26fc421693f1 /pjsip/src | |
parent | c0cd0b4450fdcf785bb9184b4d6231d452cb8df5 (diff) |
Fixed handles leak upon program exit, by introducing pj_shutdown() and pj_atexit(). Also fixed handle leaks in SIP transaction layer and SIP endpoint.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@815 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src')
-rw-r--r-- | pjsip/src/pjsip/sip_endpoint.c | 3 | ||||
-rw-r--r-- | pjsip/src/pjsip/sip_transaction.c | 3 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_core.c | 3 | ||||
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_media.c | 3 |
4 files changed, 12 insertions, 0 deletions
diff --git a/pjsip/src/pjsip/sip_endpoint.c b/pjsip/src/pjsip/sip_endpoint.c index 2d61e6b9..5586d305 100644 --- a/pjsip/src/pjsip/sip_endpoint.c +++ b/pjsip/src/pjsip/sip_endpoint.c @@ -581,6 +581,9 @@ PJ_DEF(void) pjsip_endpt_destroy(pjsip_endpoint *endpt) /* Delete endpoint mutex. */ pj_mutex_destroy(endpt->mutex); + /* Delete module's mutex */ + pj_rwmutex_destroy(endpt->mod_mutex); + /* Finally destroy pool. */ pj_pool_release(endpt->pool); diff --git a/pjsip/src/pjsip/sip_transaction.c b/pjsip/src/pjsip/sip_transaction.c index faa9b2fe..af742b6f 100644 --- a/pjsip/src/pjsip/sip_transaction.c +++ b/pjsip/src/pjsip/sip_transaction.c @@ -674,6 +674,9 @@ static pj_status_t mod_tsx_layer_unload(void) /* Release pool. */ pjsip_endpt_release_pool(mod_tsx_layer.endpt, mod_tsx_layer.pool); + /* Free TLS */ + pj_thread_local_free(pjsip_tsx_lock_tls_id); + /* Mark as unregistered. */ mod_tsx_layer.endpt = NULL; diff --git a/pjsip/src/pjsua-lib/pjsua_core.c b/pjsip/src/pjsua-lib/pjsua_core.c index 000d469f..7d9fa3b8 100644 --- a/pjsip/src/pjsua-lib/pjsua_core.c +++ b/pjsip/src/pjsua-lib/pjsua_core.c @@ -707,6 +707,9 @@ PJ_DEF(pj_status_t) pjsua_destroy(void) pjsua_var.log_file = NULL; } + /* Shutdown PJLIB */ + pj_shutdown(); + /* Done. */ return PJ_SUCCESS; } diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c index b040ff84..2a8146c4 100644 --- a/pjsip/src/pjsua-lib/pjsua_media.c +++ b/pjsip/src/pjsua-lib/pjsua_media.c @@ -474,6 +474,9 @@ pj_status_t pjsua_media_subsys_destroy(void) pjsua_var.med_endpt = NULL; } + /* Deinitialize sound subsystem */ + pjmedia_snd_deinit(); + return PJ_SUCCESS; } |