1*1c60b9acSAndroid Build Coastguard Worker# lws minimal ws server (threads) + SMP 2*1c60b9acSAndroid Build Coastguard Worker 3*1c60b9acSAndroid Build Coastguard WorkerThis demonstrates both independent threads creating content 4*1c60b9acSAndroid Build Coastguard Workeras in the -threads example, and multiple service threads 5*1c60b9acSAndroid Build Coastguard Workeras in the http-server-smp example (but with ws). 6*1c60b9acSAndroid Build Coastguard Worker 7*1c60b9acSAndroid Build Coastguard Worker## build 8*1c60b9acSAndroid Build Coastguard Worker 9*1c60b9acSAndroid Build Coastguard WorkerYou must first build libwebsockets itself with cmake `-DLWS_MAX_SMP=8` 10*1c60b9acSAndroid Build Coastguard Workeror some other number greater than one. 11*1c60b9acSAndroid Build Coastguard Worker 12*1c60b9acSAndroid Build Coastguard Worker``` 13*1c60b9acSAndroid Build Coastguard Worker $ cmake . && make 14*1c60b9acSAndroid Build Coastguard Worker``` 15*1c60b9acSAndroid Build Coastguard Worker 16*1c60b9acSAndroid Build Coastguard WorkerPthreads is required on your system. 17*1c60b9acSAndroid Build Coastguard Worker 18*1c60b9acSAndroid Build Coastguard Worker## usage 19*1c60b9acSAndroid Build Coastguard Worker 20*1c60b9acSAndroid Build Coastguard Worker``` 21*1c60b9acSAndroid Build Coastguard Worker $ ./lws-minimal-ws-server-threads-smp 22*1c60b9acSAndroid Build Coastguard Worker[2019/01/28 06:59:17:4217] USER: LWS minimal ws server + threads + smp | visit http://localhost:7681 23*1c60b9acSAndroid Build Coastguard Worker[2019/01/28 06:59:17:4219] NOTICE: Service threads: 2 24*1c60b9acSAndroid Build Coastguard Worker[2019/01/28 06:59:17:4220] NOTICE: LWS_CALLBACK_EVENT_WAIT_CANCELLED in svc tid 0x7fec48af8700 25*1c60b9acSAndroid Build Coastguard Worker[2019/01/28 06:59:17:4220] NOTICE: LWS_CALLBACK_EVENT_WAIT_CANCELLED in svc tid 0x7fec48af8700 26*1c60b9acSAndroid Build Coastguard Worker... 27*1c60b9acSAndroid Build Coastguard Worker``` 28*1c60b9acSAndroid Build Coastguard Worker 29*1c60b9acSAndroid Build Coastguard WorkerVisit http://localhost:7681 on multiple browser windows. You may need to open 30*1c60b9acSAndroid Build Coastguard Worker4 before the second service thread is used (check "svc tid" in the browser output). 31*1c60b9acSAndroid Build Coastguard Worker 32*1c60b9acSAndroid Build Coastguard WorkerTwo lws service threads are started. 33*1c60b9acSAndroid Build Coastguard Worker 34*1c60b9acSAndroid Build Coastguard WorkerTwo separate asynchronous threads generate strings and add them to a ringbuffer, 35*1c60b9acSAndroid Build Coastguard Workersignalling all lws service threads to send new entries to all the browser windows. 36*1c60b9acSAndroid Build Coastguard Worker 37*1c60b9acSAndroid Build Coastguard WorkerThis demonstrates how to safely manage asynchronously generated content 38*1c60b9acSAndroid Build Coastguard Workerand hook it up to the lws service threads. 39*1c60b9acSAndroid Build Coastguard Worker 40