diff options
Diffstat (limited to 'tests/modules/thread/queue.lua')
| -rw-r--r-- | tests/modules/thread/queue.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/modules/thread/queue.lua b/tests/modules/thread/queue.lua new file mode 100644 index 000000000..ebf298ec2 --- /dev/null +++ b/tests/modules/thread/queue.lua @@ -0,0 +1,28 @@ +import("core.base.thread") + +function callback(event, queue) + print("starting ..") + while true do + print("waiting ..") + if event:wait(-1) > 0 then + while not queue:empty() do + print(" -> %s", queue:pop()) + end + end + end +end + +function main() + local event = thread.event() + local queue = thread.queue() + local t = thread.start_named("", callback, event, queue) + while true do + local ch = io.read() + if ch then + queue:push(ch) + event:post() + end + end + t:wait(-1) +end + |
