|
@@ -10,7 +10,7 @@ local f
|
|
|
local main, ismain = coroutine.running()
|
|
|
assert(type(main) == "thread" and ismain)
|
|
|
assert(not coroutine.resume(main))
|
|
|
-assert(not coroutine.isyieldable())
|
|
|
+assert(not coroutine.isyieldable(main) and not coroutine.isyieldable())
|
|
|
assert(not pcall(coroutine.yield))
|
|
|
|
|
|
|
|
@@ -38,7 +38,7 @@ function foo (a, ...)
|
|
|
assert(coroutine.resume(f) == false)
|
|
|
assert(coroutine.status(f) == "running")
|
|
|
local arg = {...}
|
|
|
- assert(coroutine.isyieldable())
|
|
|
+ assert(coroutine.isyieldable(x))
|
|
|
for i=1,#arg do
|
|
|
_G.x = {coroutine.yield(table.unpack(arg[i]))}
|
|
|
end
|
|
@@ -46,14 +46,17 @@ function foo (a, ...)
|
|
|
end
|
|
|
|
|
|
f = coroutine.create(foo)
|
|
|
+assert(coroutine.isyieldable(f))
|
|
|
assert(type(f) == "thread" and coroutine.status(f) == "suspended")
|
|
|
assert(string.find(tostring(f), "thread"))
|
|
|
local s,a,b,c,d
|
|
|
s,a,b,c,d = coroutine.resume(f, {1,2,3}, {}, {1}, {'a', 'b', 'c'})
|
|
|
+assert(coroutine.isyieldable(f))
|
|
|
assert(s and a == nil and coroutine.status(f) == "suspended")
|
|
|
s,a,b,c,d = coroutine.resume(f)
|
|
|
eqtab(_G.x, {})
|
|
|
assert(s and a == 1 and b == nil)
|
|
|
+assert(coroutine.isyieldable(f))
|
|
|
s,a,b,c,d = coroutine.resume(f, 1, 2, 3)
|
|
|
eqtab(_G.x, {1, 2, 3})
|
|
|
assert(s and a == 'a' and b == 'b' and c == 'c' and d == nil)
|