blob: 5beac2b19c862dd9b1595fd17c8508ce98b991c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
local llthreads = require"llthreads"
local sleep
local status, socket = pcall(require,"socket")
if status then
sleep = function(secs)
return socket.sleep(secs)
end
end
if not sleep then
local status, ztimer = pcall(require, "lzmq.timer")
if status then
sleep = function(secs)
ztimer.sleep(secs * 1000)
end
end
end
if not sleep then
sleep = function(secs)
os.execute("sleep " .. tonumber(secs))
end
end
local include = [[
local llthreads = require"llthreads"
local sleep
local status, socket = pcall(require,"socket")
if status then
sleep = function(secs)
return socket.sleep(secs)
end
end
if not sleep then
local status, ztimer = pcall(require, "lzmq.timer")
if status then
sleep = function(secs)
ztimer.sleep(secs * 1000)
end
end
end
if not sleep then
sleep = function(secs)
os.execute("sleep " .. tonumber(secs))
end
end
]]
local thread = llthreads.new(include .. [[
sleep(5)
]])
thread:start()
local ok, err = thread:join(0)
print("thread:join(0): ", ok, err)
assert(ok == false)
assert(err == "timeout")
print("thread:join(): ", thread:join())
print("Done!")
|