diff options
author | Liong Sauw Ming <ming@teluu.com> | 2010-09-07 05:12:02 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2010-09-07 05:12:02 +0000 |
commit | c7f48f004e14c0be8b4c5fcd82c6a5ccc64c170a (patch) | |
tree | 4ad4e2141c1eab80a75e219cd380b15e29d954e2 /pjsip/src/pjsua-lib | |
parent | 72549c62dbda8bcdc5afab24c468f701728fb3d7 (diff) |
Fixed #1117: Configurable PJSUA-LIB lock timeout
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3304 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsua-lib')
-rw-r--r-- | pjsip/src/pjsua-lib/pjsua_call.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/pjsip/src/pjsua-lib/pjsua_call.c b/pjsip/src/pjsua-lib/pjsua_call.c index d390009e..ed5eb100 100644 --- a/pjsip/src/pjsua-lib/pjsua_call.c +++ b/pjsip/src/pjsua-lib/pjsua_call.c @@ -1130,13 +1130,26 @@ pj_status_t acquire_call(const char *title, pjsua_call **p_call, pjsip_dialog **p_dlg) { - enum { MAX_RETRY=50 }; unsigned retry; pjsua_call *call = NULL; pj_bool_t has_pjsua_lock = PJ_FALSE; pj_status_t status = PJ_SUCCESS; + pj_time_val time_start, timeout; - for (retry=0; retry<MAX_RETRY; ++retry) { + pj_gettimeofday(&time_start); + timeout.msec = PJSUA_ACQUIRE_CALL_TIMEOUT; + pj_time_val_normalize(&timeout); + + for (retry=0; ; ++retry) { + + if (retry % 10 == 9) { + pj_time_val dtime; + + pj_gettimeofday(&dtime); + PJ_TIME_VAL_SUB(dtime, time_start); + if (!PJ_TIME_VAL_LT(dtime, timeout)) + break; + } has_pjsua_lock = PJ_FALSE; |