Ignore:
Timestamp:
Apr 23, 2019 8:42:45 AM (4 years ago)
Author:
nanang
Message:

Fixed #2191:

  • Stricter double timer entry scheduling prevention.
  • Integrate group lock in SIP transport, e.g: for add/dec ref, for timer scheduling.


File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip/sip_endpoint.c

    r5668 r5971  
    804804 
    805805/* 
     806 * Schedule timer with group lock. 
     807 */ 
     808#if PJ_TIMER_DEBUG 
     809PJ_DEF(pj_status_t) pjsip_endpt_schedule_timer_w_grp_lock_dbg( 
     810                                                    pjsip_endpoint *endpt, 
     811                                                    pj_timer_entry *entry, 
     812                                                    const pj_time_val *delay, 
     813                                                    int id_val, 
     814                                                    pj_grp_lock_t *grp_lock, 
     815                                                    const char *src_file, 
     816                                                    int src_line) 
     817{ 
     818    PJ_LOG(6, (THIS_FILE, "pjsip_endpt_schedule_timer_w_grp_lock" 
     819                          "(entry=%p, delay=%u.%u, grp_lock=%p)", 
     820                          entry, delay->sec, delay->msec, grp_lock)); 
     821    return pj_timer_heap_schedule_w_grp_lock_dbg(endpt->timer_heap, entry, 
     822                                                 delay, id_val, grp_lock, 
     823                                                 src_file, src_line); 
     824} 
     825#else 
     826PJ_DEF(pj_status_t) pjsip_endpt_schedule_timer_w_grp_lock( 
     827                                                 pjsip_endpoint *endpt, 
     828                                                 pj_timer_entry *entry, 
     829                                                 const pj_time_val *delay, 
     830                                                 int id_val, 
     831                                                 pj_grp_lock_t *grp_lock ) 
     832{ 
     833    PJ_LOG(6, (THIS_FILE, "pjsip_endpt_schedule_timer_w_grp_lock" 
     834                          "(entry=%p, delay=%u.%u, grp_lock=%p)", 
     835                          entry, delay->sec, delay->msec, grp_lock)); 
     836    return pj_timer_heap_schedule_w_grp_lock( endpt->timer_heap, entry, 
     837                                              delay, id_val, grp_lock ); 
     838} 
     839#endif 
     840 
     841/* 
    806842 * Cancel the previously registered timer. 
    807843 */ 
Note: See TracChangeset for help on using the changeset viewer.