summaryrefslogtreecommitdiff
path: root/tests/modules/thread/coroutine.lua
blob: 28aa8971ed9155190928ab471e15fa42c18c7a41 (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
import("core.base.thread")
import("core.base.scheduler")

function thread_loop()
    import("core.base.thread")
    print("%s: starting ..", thread.running())
    local dt = os.mclock()
    for i = 1, 10 do
        print("%s: %d", thread.running(), i)
        os.sleep(1000)
    end
    dt = os.mclock() - dt
    print("%s: end, dt: %d ms", thread.running(), dt)
end

function coroutine_loop()
    print("%s: starting ..", scheduler.co_running())
    local dt = os.mclock()
    for i = 1, 10 do
        print("%s: %d", scheduler.co_running(), i)
        os.sleep(1000)
    end
    dt = os.mclock() - dt
    print("%s: end, dt: %d ms", scheduler.co_running(), dt)
end

function main()
    scheduler.co_start_named("coroutine", coroutine_loop)
    local t = thread.start_named("thread", thread_loop)
    t:wait(-1)
end