Ignore:
Timestamp:
Apr 23, 2019 8:42:45 AM (20 months 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/include/pjsip/sip_endpoint.h

    r5397 r5971  
    139139                                                const pj_time_val *max_timeout, 
    140140                                                unsigned *count); 
     141 
    141142/** 
    142143 * Schedule timer to endpoint's timer heap. Application must poll the endpoint 
     
    165166                                                 pj_timer_entry *entry, 
    166167                                                 const pj_time_val *delay ); 
     168#endif 
     169 
     170/** 
     171 * Schedule timer to endpoint's timer heap with group lock. Application must 
     172 * poll the endpoint periodically (by calling #pjsip_endpt_handle_events) to 
     173 * ensure that the timer events are handled in timely manner. When the 
     174 * timeout for the timer has elapsed, the callback specified in the entry 
     175 * argument will be called. This function, like all other endpoint functions, 
     176 * is thread safe. 
     177 * 
     178 * @param endpt     The endpoint. 
     179 * @param entry     The timer entry. 
     180 * @param delay     The relative delay of the timer. 
     181 * @param id_val    The value to be set to the "id" field of the timer entry 
     182 *                  once the timer is scheduled. 
     183 * @param grp_lock  The group lock. 
     184 * @return          PJ_OK (zero) if successfull. 
     185 */ 
     186#if PJ_TIMER_DEBUG 
     187#define pjsip_endpt_schedule_timer_w_grp_lock(ept,ent,d,id,gl) \ 
     188                pjsip_endpt_schedule_timer_w_grp_lock_dbg(ept,ent,d,id,gl,\ 
     189                                                          __FILE__, __LINE__) 
     190 
     191PJ_DECL(pj_status_t) pjsip_endpt_schedule_timer_w_grp_lock_dbg( 
     192                                                    pjsip_endpoint *endpt, 
     193                                                    pj_timer_entry *entry, 
     194                                                    const pj_time_val *delay, 
     195                                                    int id_val, 
     196                                                    pj_grp_lock_t *grp_lock, 
     197                                                    const char *src_file, 
     198                                                    int src_line); 
     199#else 
     200PJ_DECL(pj_status_t) pjsip_endpt_schedule_timer_w_grp_lock( 
     201                                                 pjsip_endpoint *endpt, 
     202                                                 pj_timer_entry *entry, 
     203                                                 const pj_time_val *delay, 
     204                                                 int id_val, 
     205                                                 pj_grp_lock_t *grp_lock ); 
    167206#endif 
    168207 
Note: See TracChangeset for help on using the changeset viewer.