lua-users home
lua-l archive

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


On Thu, Mar 24, 2011 at 5:21 PM, Timothy Hunter <rmagick@gmail.com> wrote:
> I'm trying to understand how garbage collection works for userdata environments.
>
> I allocate a userdata and then call lua_setfenv to set an environment table for it. Then I allocate a 2nd userdata and store it in the environment table. Eventually Lua collects the 1st userdata.
>
> I assume that the 2nd userdata will not be collected until the reference in the environment table goes away. Is that correct? Do I need to do anything to allow the environment table to be collected?

No, not if the only ref to the env table was from userdata1.

> After the environment table is collected,  do I need to do anything to allow the 2nd userdata to be collected?

Everything should work out correctly, this is pretty much what
userdata envs are for. One thing, anyhow.

Sam