Changes between Initial Version and Version 2 of Ticket #1617
- Timestamp:
- Feb 21, 2013 11:48:25 AM (11 years ago)
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 1 3 Many problems and workarounds have been applied in PJNATH in attempt to fix synchronization issues, such as: 2 4 - #1610 (v2.0.5): Workaround for reported crash on stun_sock's on_data_recvfrom() callback … … 10 12 The overview of works to be/being done by this ticket are as follow: 11 13 - 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. 13 15 - 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). 14 16 - Create new concurrency stress test routine in PJNATH-TEST program. 15 17 16 18 19 '''API Changes''' 20 21 Some 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 23 STUN Session 24 25 - {{{pj_stun_session_create()}}} has been changed; new group lock parameter added. 26 27 STUN 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 31 STUN 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 36 TURN 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