On Tue, 2 Sep 2003, Leopold Toetsch wrote:

> Dan Sugalski <[EMAIL PROTECTED]> wrote:
> 
> > Doing the walk is *also* easy. You clear the next PMC pointer, just as
> > with a normal DOD run setup. call the DOD mark on the inital PMC
> 
> there is no mark() for a plain PMC scalar (and no next pointer inside
> the PMC). If the PMC has a mark routine this calls pobject_lives()
> (setting the live flag) and puts complex PMCs but *not all* on the next
> for GC pointer. Some get their live flag directly set.

Every PMC should have a next_for_GC pointer. You moved it to the ext 
structure, but it's there, and they all ought to have one. Any PMC that 
gets frozen *will* have one, as it needs to have it for traversal to work 
properly.
 
> Using the DOD functionality doesn't match freeze, thaw, dump at all and
> interferes with DOD runs.

Oh, nonsense, it doesn't at all interfere with things. I designed it with
this as one of the applications for the DOD system. It should also work
reasonably well for destruction ordering. If it's been changed in a way
that makes this untenable, it needs to be fixed so it does.

                                                Dan

Reply via email to