From bug 702300 comment 61: > @@ +3773,5 @@ > > + rt->gcHelperThread.waitBackgroundSweepEnd(); > > +#endif > > + AutoUnlockGC unlock(rt); > > + > > + AutoCopyFreeListToArenas copy(rt); > > Waiting for background sweeping to end and the AutoUnlockGC should be > unnecessary. Same for AutoCopyFreeListToArenas. The functions that can be simplified are JS_IterateCompartments, IterateCompartmentsArenasCells, and IterateChunks.
It's only JS_IterateCompartments that needs to be changed. The others touch things that are modified by background sweeping (cells and chunks), so they should still wait for it to end. (Although we probably don't need the AutoCopyFreeListToArenas in IterateChunks, but it really doesn't cost us much.) This is my fault. I should have caught it in review when JS_IterateCompartments landed.
Created attachment 598757 [details] [diff] [review] patch
Attachment #598757 - Flags: review?(wmccloskey)
Attachment #598757 - Flags: review?(wmccloskey) → review+
Summary: Simplify the GC heap iterator functions → Simplify JS_IterateCompartments
Status: ASSIGNED → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla13
You need to log in before you can comment on or make changes to this bug.