1#!/usr/local/bin/lua52
2
3local cqueues = require("cqueues")
4local signal = require("cqueues.signal")
5
6local cq = cqueues.new()
7
8local sl = signal.listen(signal.SIGTERM, signal.SIGINT)
9
10--signal.ignore(signal.SIGTERM)
11signal.block(signal.SIGTERM, signal.SIGINT)
12
13
14cq:wrap(function()
15	local signo
16
17	while true do
18		signo = sl:wait(0.5)
19
20		print(signo, signal[signo])
21
22		if signo == signal.SIGINT then
23			os.exit(true)
24		end
25	end
26end)
27
28
29cq:wrap(function()
30	while true do
31		cqueues.sleep(1)
32		signal.raise(signal.SIGTERM)
33	end
34end)
35
36
37while not cq:empty() do
38	local ok, err = cq:step()
39	if not ok then error(err) end
40end
41