Changeset 3304 for pjproject


Ignore:
Timestamp:
Sep 7, 2010 5:12:02 AM (14 years ago)
Author:
ming
Message:

Fixed #1117: Configurable PJSUA-LIB lock timeout

Location:
pjproject/trunk/pjsip
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h

    r3303 r3304  
    315315#ifndef PJSUA_ADD_ICE_TAGS 
    316316#   define PJSUA_ADD_ICE_TAGS           1 
     317#endif 
     318 
     319/** 
     320 * Timeout value used to acquire mutex lock on a particular call. 
     321 * 
     322 * Default: 2000 ms 
     323 */ 
     324#ifndef PJSUA_ACQUIRE_CALL_TIMEOUT 
     325#   define PJSUA_ACQUIRE_CALL_TIMEOUT 2000 
    317326#endif 
    318327 
  • pjproject/trunk/pjsip/src/pjsua-lib/pjsua_call.c

    r3243 r3304  
    11311131                                pjsip_dialog **p_dlg) 
    11321132{ 
    1133     enum { MAX_RETRY=50 }; 
    11341133    unsigned retry; 
    11351134    pjsua_call *call = NULL; 
    11361135    pj_bool_t has_pjsua_lock = PJ_FALSE; 
    11371136    pj_status_t status = PJ_SUCCESS; 
    1138  
    1139     for (retry=0; retry<MAX_RETRY; ++retry) { 
     1137    pj_time_val time_start, timeout; 
     1138 
     1139    pj_gettimeofday(&time_start); 
     1140    timeout.msec = PJSUA_ACQUIRE_CALL_TIMEOUT; 
     1141    pj_time_val_normalize(&timeout); 
     1142 
     1143    for (retry=0; ; ++retry) { 
     1144 
     1145        if (retry % 10 == 9) { 
     1146            pj_time_val dtime; 
     1147 
     1148            pj_gettimeofday(&dtime); 
     1149            PJ_TIME_VAL_SUB(dtime, time_start); 
     1150            if (!PJ_TIME_VAL_LT(dtime, timeout)) 
     1151                break; 
     1152        } 
    11401153         
    11411154        has_pjsua_lock = PJ_FALSE; 
Note: See TracChangeset for help on using the changeset viewer.