It's a lot of extra work for the DOD. I'm up for it if we have to,
but I'd prefer to not do it if we don't have to.
Opinions, folks?
--
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
d...@sidhe.org have teddy bears and even
teddy bears get drunk
> It'd be simple enough to do--prepend a PObj front to the vtables and
> allocate the vtables themselves out of a separate managed arena, and do
> a bit of custom mark noting. This'd make collecting up unused vtables
> easy enough. The downside to this is it means we add in a *lot* of extra
> pointer traversal, as we add in an extra live pointer for every live PMC
> in the system.
>
> It's a lot of extra work for the DOD. I'm up for it if we have to, but
> I'd prefer to not do it if we don't have to.
Rather not. But if we have to allocate a separate vtable, we should set
a flag in the vtable->flags, mark the PMC as special, so that destroy
can free the vtable.
leo
That works for one-off vtables, but doesn't work in the case of
shared vtables. Those may happen if we allow unloading of classes,
but I think I've a way around that one. I think.
> That works for one-off vtables, but doesn't work in the case of
> shared vtables. Those may happen if we allow unloading of classes,
> but I think I've a way around that one. I think.
The we'll make the flag bigger and call it refcount :) Shared (COWed)
resources *have* a refcount during DOD anyway.
> Dan
leo