Closed Bug 1003984 Opened 11 years ago Closed 8 years ago

Add a way to run an entire ICC phase

Categories

(Core :: XPCOM, defect)

28 Branch
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: mccr8, Unassigned)

References

Details

It would be nice to have some kind of |ccSlicePhase()| method that finishes out the current ICC phase that is being run. The basic idea is to run with an unlimited budget (so the inner loop will run to completion), but then add an additional check of some flag to the outer loop in Collect(), which would get set somehow with ccSlicePhase(). We only ever run the outer loop a handful of times per CC, so I don't think it is a big deal to always do the check.
My main concern is with the fragility of this, because it depends very much on the internal details of the cycle collector. The different phases are not quite as canonical as the mark and sweep phases of the GC. I worry what will happen if we add some tests that depend on this, then later we split unlink or something. What would the tests actually be testing, then? We could do something weird like pass in a string describing the phase you expect to run, and return a string describing the phase that the CC is in afterwards, which would allow tests to check behavior, but maybe that is overkill.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.