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
Родитель 3a55153738
Коммит 5b219437ad
3 изменённых файлов: 9 добавлений и 1 удалений

Просмотреть файл

@ -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) {

Просмотреть файл

@ -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);

Просмотреть файл

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