1# lws minimal http server eventlib foreign 2 3Commandline option|Meaning 4---|--- 5-d <loglevel>|Debug verbosity in decimal, eg, -d15 6--uv|Use the libuv event library (lws must have been configured with `-DLWS_WITH_LIBUV=1`) 7--event|Use the libevent library (lws must have been configured with `-DLWS_WITH_LIBEVENT=1`) 8--ev|Use the libev event library (lws must have been configured with `-DLWS_WITH_LIBEV=1`) 9--sd|Use the systemd event library (lws must have been configured with `-DLWS_WITH_SDEVENT=1`) 10 11Notice libevent and libev cannot coexist in the one library. But all the other combinations are OK. 12 13x|libuv|libevent|libev 14---|---|---|--- 15libuv|-|OK|OK 16libevent|OK|-|no 17libev|OK|no|- 18 19This demonstrates having lws take part in a libuv loop owned by 20something else, with its own objects running in the loop. 21 22Lws can join the loop, and clean up perfectly after itself without 23leaving anything behind or making trouble in the larger loop, which 24does not need to stop during lws creation or destruction. 25 26First the foreign loop is created with a 1s timer, and runs alone for 5s. 27 28Then the lws context is created inside the timer callback and runs for 10s... 29during this period you can visit http://localhost:7681 for normal lws 30service using the foreign loop. 31 32After the 10s are up, the lws context is destroyed inside the foreign loop 33timer. The foreign loop runs alone again for a further 5s and then 34exits itself. 35 36## build 37 38``` 39 $ cmake . && make 40``` 41 42## usage 43 44``` 45 $ ./lws-minimal-http-server-eventlib-foreign 46[2018/03/29 12:19:31:3480] USER: LWS minimal http server eventlib + foreign loop | visit http://localhost:7681 47[2018/03/29 12:19:31:3724] NOTICE: Creating Vhost 'default' port 7681, 1 protocols, IPv6 off 48[2018/03/29 12:19:31:3804] NOTICE: Using foreign event loop... 49[2018/03/29 12:19:31:3938] USER: Foreign 1Hz timer 50[2018/03/29 12:19:32:4011] USER: Foreign 1Hz timer 51[2018/03/29 12:19:33:4024] USER: Foreign 1Hz timer 52^C[2018/03/29 12:19:33:8868] NOTICE: Signal 2 caught, exiting... 53[2018/03/29 12:19:33:8963] USER: main: starting exit cleanup... 54[2018/03/29 12:19:33:9064] USER: main: lws context destroyed: cleaning the foreign loop 55[2018/03/29 12:19:33:9108] USER: main: exiting... 56``` 57 58Visit http://localhost:7681 59 60