Changes between Initial Version and Version 2 of Ticket #1604
- Timestamp:
- Jan 31, 2013 7:29:57 AM (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #1604
- Property Status changed from new to closed
- Property Resolution changed from to fixed
-
Ticket #1604 – Description
initial v2 1 1 The double destructions can happen when two threads, executing pj_ice_strans_destroy() and ICE stream transport's sess_dec_ref(), at the same time. 2 2 3 Scenario: 4 1. Thread 1 (worker thread) is entering sess_dec_ref() and successfully decreases the counter to zero, context switched to thread 2 before evaluating the destroy condition. 5 1. Thread 2 is entering pj_ice_strans_destroy() and setting destroy_req flag to TRUE, context switched back to thread 1 again. 6 1. Thread 1 sees destroy_req==TRUE, so ICE stream transport gets destroyed. 7 1. Thread 2 destroy the ICE stream transport again. 8 3 9 Thanks Itay Bianco for the report.