Changes between Initial Version and Version 1 of Ticket #1616


Ignore:
Timestamp:
Feb 13, 2013 8:00:44 AM (7 years ago)
Author:
bennylp
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1616 – Description

    initial v1  
    88'''More robust timer heap''' 
    99 
    10  - Integration of group lock to the timer heap. A new API is introduced: {{{pj_timer_heap_schedule_w_grp_lock()}}}, which adds reference counter to the group lock when timer is scheduled, and automatically decrements it after the timer expires or cancelled. This API also sets the timer "id" automatically and atomically. 
     10 - Integration of group lock to the timer heap. A new API is introduced: {{{pj_timer_heap_schedule_w_grp_lock()}}}, which adds reference counter to the group lock when timer is scheduled, and automatically decrements it after the timer expires or cancelled, to prevent the group lock from being destroyed when a timer callback is about to be executed. This API also sets the timer "id" automatically and atomically. 
    1111 - New convenience API: {{{pj_timer_heap_cancel_if_active()}}} to cancel a timer without having to firstly check if it is active or not. 
    1212 
     
    1414'''Changes is ioqueue and active socket''' 
    1515 
    16  - Ioqueue Key to use Lock Object Instead of Mutex. This is required so that the lock can be synchronized with the group lock. The ioqueue key's lock can be retrieved from the active socket as well. 
     16 - Ioqueue key to use lock object instead of mutex. This is required so that the lock can be synchronized with the group lock. The ioqueue key's lock can be retrieved from the active socket as well. 
    1717 - Added {{{pj_activesock_shutdown()}}} to cancel all pending operations. It is now recommended that active socket closure is done in two stages (shutdown and then destroy) to avoid race condition where the object is destroyed while callback is about to execute. 
    1818