From e3fe5123a36643634e00de6a1bb940e6e1febade Mon Sep 17 00:00:00 2001 From: moteus Date: Thu, 26 Dec 2013 18:52:58 +0400 Subject: Add. `joinable` parameter to `start` method which control in which thread child Lua VM will be destroyed. --- test/test_join_detach.lua | 26 ++++++++++++++++++++++++++ test/test_join_timeout.lua | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 test/test_join_detach.lua (limited to 'test') diff --git a/test/test_join_detach.lua b/test/test_join_detach.lua new file mode 100644 index 0000000..dd3ef11 --- /dev/null +++ b/test/test_join_detach.lua @@ -0,0 +1,26 @@ +local llthreads = require"llthreads" +local utils = require "utils" + +do + +local thread = llthreads.new(utils.thread_init .. [[ + local sleep = require"utils".sleep + while true do sleep(1) end +]]) + +-- detached + joindable +thread:start(true, true) + +local ok, err = thread:join(0) +print("thread:join(0): ", ok, err) +assert(ok == nil) +assert(err == "timeout") + +end + +-- enforce collect `thread` object +-- we should not hungup +for i = 1, 10 do collectgarbage("collect") end + +print("Done!") + diff --git a/test/test_join_timeout.lua b/test/test_join_timeout.lua index 085497f..aa8f88d 100644 --- a/test/test_join_timeout.lua +++ b/test/test_join_timeout.lua @@ -14,7 +14,7 @@ local thread = llthreads.new(include .. [[ thread:start() local ok, err = thread:join(0) print("thread:join(0): ", ok, err) -assert(ok == false) +assert(ok == nil) assert(err == "timeout") print("thread:join(): ", thread:join()) -- cgit v1.2.3-55-g6feb