lua-users home
lua-l archive

Question about to-be-closed methods

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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

AltStyle によって変換されたページ (->オリジナル) /