<div dir="ltr">I&#39;m using the C ESL events api.<div>I have one threads that continuously checks for updates using esl_recv_event()</div><div>I have another thread that sometimes needs to inject commands, that uses esl_send_recv() on the same handle.</div>
<div>It looks like on occasion, both get stuck and stop receiving events.</div><div><br></div><div>Is it possible for two threads to access the handle? maybe I should open two connections to freeswitch esl? or use esl_send_recv_timed()?<br>
</div><div><br></div><div>stack trace:</div><div><div>#0  0xb6f3f974 in __lll_lock_wait () from /lib/arm-linux-gnueabi/libpthread.so.0</div><div>#1  0xb6f39858 in pthread_mutex_lock () from /lib/arm-linux-gnueabi/libpthread.so.0</div>
<div>#2  0x000f2f2c in esl_mutex_lock (mutex=&lt;optimized out&gt;) at src/esl_threadmutex.c:200</div><div>#3  0x000efb70 in esl_recv_event (handle=0x11b67c, check_q=0, save_event=0xb6c47da4) at src/esl.c:1262</div><div>#4  0x0001ebbc in EslHandler::initThread (this=0x11b670) at eslHandler.cpp:95</div>
<div>#5  0x0001ec88 in EslHandler::entryPoint (eslHandler=0x11b670) at eslHandler.cpp:110</div><div>#6  0xb6f36b04 in start_thread () from /lib/arm-linux-gnueabi/libpthread.so.0</div><div>#7  0xb6d25a2c in ?? () from /lib/arm-linux-gnueabi/libc.so.6</div>
<div>#8  0xb6d25a2c in ?? () from /lib/arm-linux-gnueabi/libc.so.6</div><div>Backtrace stopped: previous frame identical to this frame (corrupt stack?)</div><div>(gdb) thread 1</div><div>[Switching to thread 1 (Thread 0xb6c4a000 (LWP 3020))]</div>
<div>#0  0xb6d17c04 in poll () from /lib/arm-linux-gnueabi/libc.so.6</div><div>(gdb) info stack</div><div>#0  0xb6d17c04 in poll () from /lib/arm-linux-gnueabi/libc.so.6</div><div>#1  0x000ef92c in esl_wait_sock (sock=&lt;optimized out&gt;, ms=&lt;optimized out&gt;, flags=&lt;optimized out&gt;) at src/esl.c:929</div>
<div>#2  0x000ef988 in handle_recv (handle=0x11b67c, data=0x11b91c, datalen=65535) at src/esl.c:1230</div><div>#3  0x000efc84 in esl_recv_event (handle=0x11b67c, check_q=&lt;optimized out&gt;, save_event=0x12c120) at src/esl.c:1323</div>
<div>#4  0x000f0ba4 in esl_send_recv_timed (ms=0, cmd=&lt;optimized out&gt;, handle=0x11b67c) at src/esl.c:1554</div><div>#5  esl_send_recv_timed (handle=0x11b67c, cmd=&lt;optimized out&gt;, ms=0) at src/esl.c:1521</div><div>
#6  0x0001f2e0 in EslHandler::sendAtCommand (this=0x11b670, atCmd=...) at eslHandler.cpp:204</div><div>#7  0x0001f86c in EslHandler::getImsiFromSim (this=0x11b670) at eslHandler.cpp:262</div><div>#8  0x0001450c in FsControl::checkMessages (this=0x11b2a0) at fsControl.cpp:435</div>
<div>#9  0x000124cc in FsControl::handleEslCustomEvent (this=0x11b2a0, mapEventReceived=...) at fsControl.cpp:376</div><div>#10 0x0000f334 in FsControl::handleEslEvent (this=0x11b2a0, mapEventReceived=...) at fsControl.cpp:226</div>
<div>#11 0x0000e7a8 in FsControl::OnWaitHandle (this=0x11b2a0, whp=0x13aea8, data=...) at fsControl.cpp:140</div><div>#12 0x000d230c in os::Schedualed::OnEvent (this=0x11b2a0, event=0x13aea8, data=...) at cpp/os.cpp:1578</div>
<div>#13 0x000cd1d0 in os::Schedualer::mainloop (this=0x11b348, exitOnNoneManaged=false) at cpp/os.cpp:446</div><div>#14 0x000161e0 in main (argc=3, argv=0xbea16904) at fsControl.cpp:603</div></div><div><br></div><div><br>
</div></div>