summaryrefslogtreecommitdiff
path: root/pjsip/src
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2011-12-28 09:52:07 +0000
committerNanang Izzuddin <nanang@teluu.com>2011-12-28 09:52:07 +0000
commit88938bc59f786d4064e5b17b351724b016edde4b (patch)
tree363f544d06ce3932c76878bf1f5a073bade88b29 /pjsip/src
parent0566586af9552967c1c2d3345542fc2c85976fc3 (diff)
Fix #1433: synchronuous ICE initialization calls PJSUA_UNLOCK() only when the PJSUA lock is actually held by this thread.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3929 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src')
-rw-r--r--pjsip/src/pjsua-lib/pjsua_media.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index 571be8ae..7665e751 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -978,11 +978,14 @@ static pj_status_t create_ice_media_transport(
/* Wait until transport is initialized, or time out */
if (!async) {
- PJSUA_UNLOCK();
+ pj_bool_t has_pjsua_lock = PJSUA_LOCK_IS_LOCKED();
+ if (has_pjsua_lock)
+ PJSUA_UNLOCK();
while (call_med->tp_ready == PJ_EPENDING) {
pjsua_handle_events(100);
}
- PJSUA_LOCK();
+ if (has_pjsua_lock)
+ PJSUA_LOCK();
}
if (async && call_med->tp_ready == PJ_EPENDING) {