[Freeswitch-users] esl api issues

leonhe leon.he at msn.com
Wed Aug 6 19:52:09 MSD 2014

Hi All,


Recently I'm writing an Application with ESL in inbound mode. I have two


1)       esl_recv_event()

a)         Each time I call this interface,  handle->last_ievent will be
updated to be the oldest event. Just like de-queue the oldest event from

My assumption is right or not?

b)         After call this interface, may I access "handle->last_ievent"
without any protection( without mutex/lock)?

If there is any risk of handle->last_ievent is updated during my access, for
example some other interfaces are called or new events are received from FS

Per my experience,  seems has such risk.


2)       esl_execute()


When I read the implementation of the code,  is there any possibility to
dead lock as following?


    +-->esl_send_recv /esl_send_recv_timed(_handle, _cmd, 0)

         +--> esl_mutex_lock(handle->mutex);        <<<<< lock for 1st time

                +--> esl_recv_event_timed(handle, ms, 0, &handle

                     +--> esl_recv_event()

                         +----> esl_mutex_lock(handle->mutex);  <<<<<< lock
for 2nd time, but preview one is not unlock


         Can anyone confirm this?






-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20140806/ba9220d3/attachment.html 

Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list