Bug 650161 - Stop off thread compilation while we are compacting r=terrence

This commit is contained in:
Jon Coppeard 2015-01-15 16:54:52 +00:00
parent ff7011f062
commit 2477c133e2
3 changed files with 9 additions and 1 deletions

View File

@ -2508,10 +2508,16 @@ jit::StopAllOffThreadCompilations(JSCompartment *comp)
}
void
jit::InvalidateAll(FreeOp *fop, Zone *zone)
jit::StopAllOffThreadCompilations(Zone *zone)
{
for (CompartmentsInZoneIter comp(zone); !comp.done(); comp.next())
StopAllOffThreadCompilations(comp);
}
void
jit::InvalidateAll(FreeOp *fop, Zone *zone)
{
StopAllOffThreadCompilations(zone);
for (JitActivationIterator iter(fop->runtime()); !iter.done(); ++iter) {
if (iter->compartment()->zone() == zone) {

View File

@ -144,6 +144,7 @@ CodeGenerator *CompileBackEnd(MIRGenerator *mir);
void AttachFinishedCompilations(JSContext *cx);
void FinishOffThreadBuilder(JSContext *cx, IonBuilder *builder);
void StopAllOffThreadCompilations(Zone *zone);
void StopAllOffThreadCompilations(JSCompartment *comp);
uint8_t *LazyLinkTopActivation(JSContext *cx);

View File

@ -2235,6 +2235,7 @@ GCRuntime::relocateArenas()
if (CanRelocateZone(rt, zone)) {
zone->setGCState(Zone::Compact);
StopAllOffThreadCompilations(zone);
relocatedList = zone->arenas.relocateArenas(relocatedList);
}
}