[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Question about to-be-closed methods
- From: Dibyendu Majumdar <mobile@...>
- Date: Fri, 17 Jul 2020 13:25:27 +0100
Hi,
I am trying to understand this test case in 'locals.lua'
local x = 0
local y = 0
co = coroutine.wrap(function ()
local xx <close> = func2close(function () y = y + 1; error("YYY") end)
local xv <close> = func2close(function () x = x + 1; error("XXX") end)
coroutine.yield(100)
return 200
end)
assert(co() == 100); assert(x == 0)
local st, msg = pcall(co)
assert(x == 2 and y == 1) -- first close is called twice
My question is this:
Why is the 'first close is called twice'?
Thanks and Regards
Dibyendu