| Index: runtime/vm/compiler.cc
|
| diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
|
| index 74795062b1ef56e71e69b289926e3e98ca2a5909..3ce18f89e3ec5d94364f1c8c7e91788cf8633228 100644
|
| --- a/runtime/vm/compiler.cc
|
| +++ b/runtime/vm/compiler.cc
|
| @@ -1058,14 +1058,13 @@ bool CompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) {
|
| // instruction object, since the creation of instruction object
|
| // changes code page access permissions (makes them temporary not
|
| // executable).
|
| - isolate()->thread_registry()->SafepointThreads();
|
| {
|
| + SafepointOperationScope safepoint_scope(thread());
|
| // Do not Garbage collect during this stage and instead allow the
|
| // heap to grow.
|
| NoHeapGrowthControlScope no_growth_control;
|
| FinalizeCompilation(&assembler, &graph_compiler, flow_graph);
|
| }
|
| - isolate()->thread_registry()->ResumeAllThreads();
|
| if (isolate()->heap()->NeedsGarbageCollection()) {
|
| isolate()->heap()->CollectAllGarbage();
|
| }
|
| @@ -1899,9 +1898,7 @@ void BackgroundCompiler::Stop(BackgroundCompiler* task) {
|
| {
|
| MonitorLocker ml_done(done_monitor);
|
| while (!(*task_done)) {
|
| - // In case that the compiler is waiting for safepoint.
|
| - Isolate::Current()->thread_registry()->CheckSafepoint();
|
| - ml_done.Wait(1);
|
| + ml_done.WaitWithSafepointCheck(Thread::Current());
|
| }
|
| }
|
| delete task_done;
|
|
|