[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Back to the GC stall in atomic()
- From: Niklas Frykholm <niklas@...>
- Date: Tue, 11 Dec 2007 18:13:01 +0100
Recap: With a lot of userdata objects I got a stall in atomic(L). I
switched them over to tables which got rid of the stall. But now I've
realized that I need some of them (ten thousand or so) to have
finalizers and then I am back to the stall in atomic (because only
userdata can have finalizers).
My current plan is to see if the finalizer code in Lua can somehow be
simplified. It seems like Lua spends a lot of effort making sure that
finalizers are called in the right order and at the end of the garbage
collection cycle. I don't actually need that. My finalizers can be
called in any order and at any time during garbage collection, before
the userdata object is freed.
I'm thinking (hoping) that with these less strict requirements it would
be possible to get rid of the stall in atomic() by rewriting the way the
garbage collector handles unit data, but I'm a bit wary of touching the
lua GC code.
Has anyone done something like this? Or have any ideas on where to start?