diff options
Diffstat (limited to 'pjnath/src/pjnath/stun_session.c')
-rw-r--r-- | pjnath/src/pjnath/stun_session.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pjnath/src/pjnath/stun_session.c b/pjnath/src/pjnath/stun_session.c index 96959738..e7dfa582 100644 --- a/pjnath/src/pjnath/stun_session.c +++ b/pjnath/src/pjnath/stun_session.c @@ -149,10 +149,16 @@ static void stun_tsx_on_destroy(pj_stun_client_tsx *tsx) tdata = (pj_stun_tx_data*) pj_stun_client_tsx_get_data(tsx); pj_stun_client_tsx_stop(tsx); if (tdata) { - tsx_erase(tdata->sess, tdata); + pj_stun_session *sess = tdata->sess; + + pj_grp_lock_acquire(sess->grp_lock); + tsx_erase(sess, tdata); pj_pool_release(tdata->pool); + pj_grp_lock_release(sess->grp_lock); } + pj_stun_client_tsx_destroy(tsx); + TRACE_((THIS_FILE, "STUN transaction %p destroyed", tsx)); } |