summaryrefslogtreecommitdiff
path: root/res/res_pjsip.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/res_pjsip.c')
-rw-r--r--res/res_pjsip.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/res/res_pjsip.c b/res/res_pjsip.c
index 133546126..20ac7a03e 100644
--- a/res/res_pjsip.c
+++ b/res/res_pjsip.c
@@ -2975,6 +2975,12 @@ static int sync_task(void *data)
std->fail = std->task(std->task_data);
+ /*
+ * Once we unlock std->lock after signaling, we cannot access
+ * std again. The thread waiting within
+ * ast_sip_push_task_synchronous() is free to continue and
+ * release its local variable (std).
+ */
ast_mutex_lock(&std->lock);
std->complete = 1;
ast_cond_signal(&std->cond);