Index: runtime/vm/isolate.cc |
diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc |
index f443e17b97ac02b76a2496408ad36e804e00e04f..997be09b3749453806a888a3e29f765b8b911383 100644 |
--- a/runtime/vm/isolate.cc |
+++ b/runtime/vm/isolate.cc |
@@ -1649,6 +1649,9 @@ void Isolate::LowLevelShutdown() { |
void Isolate::Shutdown() { |
ASSERT(this == Isolate::Current()); |
+ // Wait until all background compilation has finished. |
+ BackgroundCompiler::Stop(background_compiler_); |
+ |
#if defined(DEBUG) |
if (heap_ != NULL) { |
// The VM isolate keeps all objects marked. |
@@ -1656,9 +1659,6 @@ void Isolate::Shutdown() { |
} |
#endif // DEBUG |
- // Wait until all background compilation has finished. |
- BackgroundCompiler::Stop(background_compiler_); |
- |
Thread* thread = Thread::Current(); |
// Don't allow anymore dart code to execution on this isolate. |
@@ -1938,6 +1938,7 @@ void Isolate::set_default_tag(const UserTag& tag) { |
void Isolate::set_deoptimized_code_array(const GrowableObjectArray& value) { |
+ ASSERT(Thread::Current()->IsMutatorThread()); |
deoptimized_code_array_ = value.raw(); |
} |