lua-users home
lua-l archive

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


on 7/6/04 6:02 AM, Roberto Ierusalimschy at roberto@inf.puc-rio.br wrote:

>> * While finalizing objects, we can end up triggering the garbage
>> collector which results in a more or less infinite recursion:
> 
> Each time GCTM is called, it removes one userdata from the list. So,
> this (rare) recursion should have a limit.

I probably happened to have particularly pathological data structures with
respect to the work in the __gc metamethod. (I'm not necessarily thrilled
with that work either. It stemmed from efforts to manage per object
metatables.) It would still probably be a good idea to prevent the recursion
entirely.

>> * I get an error at the assertion in propagatemarks: lua_assert(isgray(o)).
> 
> Do you know the type of `o'?

I believe it was a table, but this hasn't been easily reproducible though it
has now fired twice. If there's a useful set of information I can collect
the next time it happens, let me know.

Thanks.
Mark