Index: runtime/vm/thread_registry.cc |
diff --git a/runtime/vm/thread_registry.cc b/runtime/vm/thread_registry.cc |
index 44c0d133460cd1aa7afda44e1d453d0a9759debe..24445162a5f2bcb5e3cba405bbd84aa758329cd3 100644 |
--- a/runtime/vm/thread_registry.cc |
+++ b/runtime/vm/thread_registry.cc |
@@ -4,6 +4,7 @@ |
#include "vm/thread_registry.h" |
+#include "vm/compiler.h" |
#include "vm/isolate.h" |
#include "vm/lockers.h" |
@@ -37,6 +38,11 @@ void ThreadRegistry::SafepointThreads() { |
if (!isolate->MutatorThreadIsCurrentThread()) { |
isolate->ScheduleInterrupts(Isolate::kVMInterrupt); |
} |
+ if (isolate->compile_optimized_task() != NULL) { |
+ // Make sure the task moves from Wait to a safepoint. |
koda
2015/10/01 22:27:02
This should not be needed anymore, now that you en
srdjan
2015/10/01 23:11:24
Done.
|
+ MonitorLocker ml_comp(isolate->compile_optimized_task()->monitor()); |
+ ml_comp.Notify(); |
+ } |
while (remaining_ > 0) { |
ml.Wait(Monitor::kNoTimeout); |
} |