[asterisk-dev] Interlocking of individual channels and the channels list in chan_sip.

Kirill Katsnelson kkm at adaptiveai.com
Thu Jun 16 02:52:23 CDT 2011


On 110616 0041, Kirill Katsnelson wrote:
>the rule should be to never cause an attempted
> locking of the channels list while holding a lock on any channel. Correct?

Looks like it is not even specific to chan_sip: ast_channel_lock is 
there ins ast_async_goto(). It seems that it is inherently 
deadlock-prone: call ast_async_goto() on one thread with a 
non-pbx-serviced channel, find_channel_...() on another, and there is a 
chance to lock. All necessary locking happens in these function.

  -kkm



More information about the asterisk-dev mailing list