Bob Rogers wrote:
So that means you do not use the IGP pointer to A when collecting any generation <= j, correct? Otherwise, I imagine you'd always decide that A is alive, and hence B and C.
IGPs entries that span the range of to be collected generations are not considered (and very likely removed)
But what if A, B, and C are all in the same generation? You'd still need an IGP entry, even though it's not inter-generational, in order to handle the backpointer, but how would you then decide that it's invalid?
I don't think this needs an IGP entry. Just a bit POSSIBLE_LOOP, which prevents early collection of dead objects during the sweep.
... Perhaps you should save your (metaphorical) breath, and I'll wait for a more detailed design.
I'm waiting too :-)
-- Bob Rogers
leo