Jeff Clites <[EMAIL PROTECTED]> wrote:
> On Oct 9, 2003, at 8:43 AM, Dan Sugalski wrote:

>...
>> Not a huge task, we just need to order PMCs before destroying them,

> ..., but there isn't a way to
> ask a mark() method to set another flag. This leaves me stuck with
> regard to PMCs with custom mark methods (but it's working for the other
> PMC flavors of referring).

This sounds exactly as it needs the general PMC traverse/iterator too,
discussed in the thread "[RfC] vtable->dump".

,--[ /me ]---------------------------------------------------------------
| So I'm speaking of a framework, which calls a vtable->traverse() method
| that calls vtable methods (freeze, clone, dump, or whatever) on SELF
| and then puts aggregate items (if any) on a TODO list. This
| functionality is IMHO that of an iterator. This does address stack
| blowing and self-referential structures.
`------------------------------------------------------------------------

Using mark() for everything doesn't work as soon as Luke Palmers scheme
Subject: "PATCH] Re: Timely Destruction: An efficient, complete solution"
is merged (BTW where are the benchmarks).

> So, I wanted to see if I'm missing something obvious, or if we need for
> mark() to take a parameter to indicate the flag to set.

An extra parameter (and check in pobject_lives) would slow down DOD, so
rather not.

> Thoughts?

Yep: vtable->traverse()

> JEff

leo

Reply via email to