summaryrefslogtreecommitdiff
path: root/pjnath/src/pjnath/stun_session.c
diff options
context:
space:
mode:
Diffstat (limited to 'pjnath/src/pjnath/stun_session.c')
-rw-r--r--pjnath/src/pjnath/stun_session.c8
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));
}