Crash in pjsua_aud with multiple worker threads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Y'alls,

I have a problem in a multi-threaded environment that I am trying to alleviate.

This is what I have done:
I have an end of file callback for any prompt file played in the system. I have followed the examples and set and EOF callback using pjmedia_wav_player_set_eof_cb and in that callback making calls to  pjsua_conf_disconnect, pjsua_player_get_conf_port,
pjsua_call_get_conf_port, and pjsua_player_destroy. But this would always lead to a deadlock as any of these function calls will interfere with get_frame that runs on the timer thread.

Therefore, I scheduled all these calls on the timer thread as mentioned on this 12 year old thread:

Now the system works but only if I have 0 pjsip worker threads. Which will not scale well in the future.
It seems that when calculating the size of the array
PJ_ASSERT_RETURN(id>=0&&id<(int)PJ_ARRAY_SIZE(pjsua_var.player),PJ_EINVAL);
in any of the above pjsua function calls in the pjsua_aud.c I get a segmentation crash when using more than 0 worker threads.

Is there any way to alleviate this? I can provide source code if needed.

Thank you,

Joey.


_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux