|
Benoit Germain wrote: ...
I suppose that when the script execution terminates, the main thread is collected, as should be the the still-running lane. However, the output becomes:lua LanesBug.wlualuaopen_xbdm: threadId = 2452 luaopen_xbdm: threadId = 3404 luaxbdm_gc: userdata threadId = 2452, current thread id = 2452 Where has the second __gc call gone?
If you have LuaSocket handy, try this: require "lanes" require "xbdm" require "socket" local function laneFunc() require "xbdm" require "socket" socket.sleep(5) end local lanegen = lanes.gen( "package", laneFunc) local mylane = lanegen() socket.sleep(10)It should call __gc now. I think that in your example, the lanes are just terminated by the OS.