|
Am 28.12.2013 03:41 schröbte Sean Conner:
local mt = { __gc = function(u) call_magic_cleanup_stuff() setmetatable({},getmetatable(u)) end } setmetatable({},mt) Doing this for Lua 5.1 is not quite as easy, as you need to use a userdata object (say, a pointer to int) instead of a Lua table, but the concept is the same.
Lua 5.1 had `newproxy` for that. E.g.: local sentinel = newproxy and newproxy( true ) or setmetatable( {}, { __gc = true } ) getmetatable( sentinel ).__gc = function() writecache( c ) end
-spc
Philipp