Skip to content
Snippets Groups Projects
Commit 45c3ac04 authored by Grzegorz Sluja's avatar Grzegorz Sluja Committed by Sukru Senli
Browse files

Avoid deadlock during R4 call transfer

There was a possibility that during attended call transfer, deadlock
happened in locking bridge_channel and channel.
bridge_channel_queue_deferred_frames() was waiting for brcm_indicate()
to unlock the channel, while brcm_indicate() which called
ast_bridge_channel_queue_frame() was waiting for
bridge_channel_queue_deferred_frames() to unlock the bridge.

Creating new macro to lock both channel and bridge_channel at the same
time and sched_yield() -> retry if failed and use it in
bridge_channel_queue_deferred_frames() avoiding the deadlock.
parent 8d499f05
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment