[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Is there a hook for the finalizer/garbage collection of non-user types?
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Mon, 6 Mar 2006 15:08:55 -0300
> a = { ....whatever ... }
> b = { __gc = function ...finalizer stuff... end }
> setmetatable(a,b)
>
> Then when "a" is collected it will run the __gc function in the metatable.
> That doesn't seem to work currently. Or how to I get this type of
> functionality? I have a table that has some external state information that
> needs to be cleaned up when the table is destroyed. Is my only choice to
> manually call some sort of cleanup function before killing the table?
Set that "external state information" as a userdata value inside "a" and
set a __gc method for that userdata.
Or try newproxy (undocumented). See this for instance:
http://lua-users.org/lists/lua-l/2005-09/msg00474.html
--lhf