Changes between Initial Version and Version 2 of Ticket #1617


Ignore:
Timestamp:
Feb 21, 2013 11:48:25 AM (11 years ago)
Author:
bennylp
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1617

    • Property Status changed from new to closed
    • Property Resolution changed from to fixed
  • Ticket #1617 – Description

    initial v2  
     1'''Overview''' 
     2 
    13Many problems and workarounds have been applied in PJNATH in attempt to fix synchronization issues, such as:  
    24 - #1610 (v2.0.5): Workaround for reported crash on stun_sock's on_data_recvfrom() callback 
     
    1012The overview of works to be/being done by this ticket are as follow: 
    1113 - Modify all STUN objects to use group lock (see [wiki:Group_Lock Group Lock]). 
    12  - Use single group lock for all objects in the same group (e.g. within ICE strans object) 
     14 - Use single group lock for all objects in the same group (e.g. within the ICE strans object). These include the ICE strans, ICE session, STUN socket and session, TURN socket and session, and down to ioqueue key and timer heap entry. 
    1315 - Carefully construct the proper shutdown routine for each object. For some objects, this means to split the destroy process into two stages: the shutdown routine to stop the operation of the object (this is done by the object's destroy() API), and the actual release of the pool (this is done in the group lock's destructor handler). 
    1416 - Create new concurrency stress test routine in PJNATH-TEST program. 
    1517 
    1618 
     19'''API Changes''' 
     20 
     21Some APIs have been "enhanced" and some have been changed. These API changes were considered necessary to make the group lock usage more explicit. However since these only occur in PJNATH, it should only affect applications that directly use them (typical PJSUA-LIB apps will not be affected). The details are as follow. 
     22 
     23STUN Session 
     24 
     25 - {{{pj_stun_session_create()}}} has been changed; new group lock parameter added. 
     26  
     27STUN Socket 
     28 
     29 - new group lock field in {{{pj_stun_sock_cfg}}}. If the STUN socket is created by ICE, ICE will fill this value itself. 
     30 
     31STUN Transaction 
     32 
     33 - {{{pj_stun_client_tsx_create()}}} has been changed; new group lock parameter added. 
     34 - {{{pj_stun_client_tsx_destroy()}}} was renamed to {{{pj_stun_client_tsx_stop()}}} to more reflect the fact that the operation doesn't destroy anything but rather just stop it from operating. 
     35 
     36TURN Socket 
     37 
     38 - new group lock field in {{{pj_turn_sock_cfg}}}. If the TURN socket is created by ICE, ICE will fill this value itself. 
     39 
     40