libwebsockets by default allocates support for multithreaded consumers
(the library itself is singlethreaded) and then requires consumers to
"implement locking in the user code in the same way that
libwebsockets-test-server-pthread does it" - and not doing so apparently
causes occational deadlocks.
Discussed at https://github.com/meetecho/janus-gateway/issues/732 where
the Janus developer were adviced by the libwebsocket developers to set
- -DLWS_MAX_SMP=0 and that seems to have solved the issue in Janus.
The option is documented here:
https://libwebsockets.org/lws-api-doc-master/html/md_README_8coding.html#smp
Please build libwebsockets with -DLWS_MAX_SMP=0 to avoid such deadlocks.
- Jonas
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAl/Te5AACgkQLHwxRsGg
ASFk4g/+NGrwkYhDTPgmLiU2aNwpO70sN/qmSWdoz1fmS0jw3blwntED7DBgJ183
p84No72BHjhwDl8Vb+3z/xhqo/nEvMhPQC49WoGgD+SDueViDVW8KCOLhCJow/iX
OcHvl2SLanIk1l+75+HPxNzHrHCZo1IJe3uySPf7Qoiiz+Bkx4ji/QOR4wmkH/G4
dGq9/3DkQDcgYaSHbI4eJ24jXXkRg0obTeVoSqaGqdtpP9tExzr4fa44SYGsFus3
+k65hy/ezlxsa++gEZ2hCWrz7jNNZvN8JNW2RAvjTH3uDPmp1XNFSU0W4asgV8oJ
WeSOFbrV+nxGTb3/CVjZ0VqjOhYGVBCzt7bdIhRF6T/uddoY30FxnLQtIH3bmyYl
bWq0lrxvU7nIk8PXpUxf4hn90OwsNAOE6EsXjx/zk1noahaoF0bs9DFjtltzoo4o
v4kutGdzbkNdMVuL8aT5nZsEHsLa2bfEZHcQKU7ho2D9fXFg5GlLQjzzjpaYBhI9
VI0puzbQhKKFLQiwRMYX2qI2Q5UA2vKYi10yVTDI4HW0t1wGEGYyov+MvIx3Y3OZ
LZPj+I+kNeOv8/S7yB95/K51icnPLU/bENpqHl+EoC9IlL1uEoU7ZTvGR3a8J6NE
A0B86ca4qfRWaNLySmlGd+cUNgDUsjnsJDaoYTRz9M7d5LZP1nA=
=zkJu
-----END PGP SIGNATURE-----