blob: 41cc9d93a0fa3cd9644b4d59b135721a5549b7c8 [file] [log] [blame] [view]
Andy Greene052edb2018-03-29 11:45:43 +08001# lws minimal http server libuv foreign
2
3This demonstrates having lws take part in a libuv loop owned by
4something else, with its own objects running in the loop.
5
Andy Greend37b3832018-04-29 10:44:36 +08006Lws can join the loop, and clean up perfectly after itself without
7leaving anything behind or making trouble in the larger loop, which
8does not need to stop during lws creation or destruction.
9
10First the foreign loop is created with a 1s timer, and runs alone for 5s.
11
12Then the lws context is created inside the timer callback and runs for 10s...
13during this period you can visit http://localhost:7681 for normal lws
14service using the foreign loop.
15
16After the 10s are up, the lws context is destroyed inside the foreign loop
17timer. The foreign loop runs alone again for a further 5s and then
18exits itself.
Andy Greene052edb2018-03-29 11:45:43 +080019
20## build
21
22```
23 $ cmake . && make
24```
25
26## usage
27
28```
29 $ ./lws-minimal-http-server-libuv-foreign
30[2018/03/29 12:19:31:3480] USER: LWS minimal http server libuv + foreign loop | visit http://localhost:7681
31[2018/03/29 12:19:31:3724] NOTICE: Creating Vhost 'default' port 7681, 1 protocols, IPv6 off
32[2018/03/29 12:19:31:3804] NOTICE: Using foreign event loop...
33[2018/03/29 12:19:31:3938] USER: Foreign 1Hz timer
34[2018/03/29 12:19:32:4011] USER: Foreign 1Hz timer
35[2018/03/29 12:19:33:4024] USER: Foreign 1Hz timer
36^C[2018/03/29 12:19:33:8868] NOTICE: Signal 2 caught, exiting...
37[2018/03/29 12:19:33:8963] USER: main: starting exit cleanup...
38[2018/03/29 12:19:33:9064] USER: main: lws context destroyed: cleaning the foreign loop
39[2018/03/29 12:19:33:9108] USER: main: exiting...
40```
41
42Visit http://localhost:7681
43