diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2011-12-28 09:52:07 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2011-12-28 09:52:07 +0000 |
commit | 88938bc59f786d4064e5b17b351724b016edde4b (patch) | |
tree | 363f544d06ce3932c76878bf1f5a073bade88b29 /pjsip/src/pjsua-lib | |
parent | 0566586af9552967c1c2d3345542fc2c85976fc3 (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/pjsua-lib')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_media.c | 7 |
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) { |