Open Bug 1758095 Opened 3 years ago Updated 2 months ago

isIncrementalGCInProgress() returns true during non-incremental GC too

Categories

(Core :: JavaScript: GC, task, P5)

task

Tracking

()

People

(Reporter: jonco, Unassigned)

References

(Blocks 1 open bug)

Details

RegExpShared::traceChildren will be the single place (following bug 1643586) where it's useful to call GCRuntime::isIncrementalGCInProgress() where it may be called from within the collector, exposing the fact that it also returns true during non-incremental GC. Usually it's only ever called from the mutator.

This is used to determine whether to discard JIT code. We need to know if we are marking, but there's no simple check since the marking tracer is also used by the pre-barrier verifier.

I'm not sure what the best way to tidy this up is. Perhaps tracers should have a flag for whether to discard non-essential memory. Possibly this could be useful in other places too.

You need to log in before you can comment on or make changes to this bug.