Open anshumanr opened 1 year ago
please be patient as you are asking for a detailed investigation and description of the code. If possible I will get to this.
I seem to have found the missing piece of my understanding.
struct private_data
is accessed in 2 different threads - fork_frame()
and fork_session_cleanup()
. I believe they can be invoked by FS in 2 different threads.AudioPipe
. It is accessed in fork_frame()
and in AudioPipe::lws_callback()
for case LWS_CALLBACK_CLIENT_WRITEABLE
. Need to check what that case means.
Hi @davehorton We are using
mod_audio_fork
module. I was going through the code and could not understand the need to acquire/lock multiple mutexes in funcfork_frame()
struct private_data
is acquired at lws_glue.cpp#L530.AudioPipe
and used to access the audio buffers is acquired at lws_glue.cpp#L541Also, this callback is invoked from func
switch_core_session_read_frame()
inswitch_core_io.c
inside a lock (bug->read_mutex
). So I could not understand the need to acquire multiple mutexes infork_frame()
. Could you please throw some pointers as to what I missed? Thanks.