Index: runtime/vm/scavenger.cc |
diff --git a/runtime/vm/scavenger.cc b/runtime/vm/scavenger.cc |
index f154078809a9e83688f25035e2199f177a4074d9..285354c51501ca2d241204f9acc9678d771d75e1 100644 |
--- a/runtime/vm/scavenger.cc |
+++ b/runtime/vm/scavenger.cc |
@@ -16,6 +16,7 @@ |
#include "vm/object_id_ring.h" |
#include "vm/stack_frame.h" |
#include "vm/store_buffer.h" |
+#include "vm/thread_registry.h" |
#include "vm/verified_memory.h" |
#include "vm/verifier.h" |
#include "vm/visitor.h" |
@@ -803,6 +804,9 @@ void Scavenger::Scavenge(bool invoke_api_callbacks) { |
ASSERT(!scavenging_); |
scavenging_ = true; |
Isolate* isolate = heap_->isolate(); |
+ |
+ isolate->thread_registry()->SafepointThreads(); |
Ivan Posva
2015/08/25 23:27:15
ditto about the comment.
Also please explain what
koda
2015/08/26 01:09:14
Done.
Added TODO about avoiding the possibility o
|
+ |
PageSpace* page_space = heap_->old_space(); |
NoSafepointScope no_safepoints; |
@@ -858,6 +862,8 @@ void Scavenger::Scavenge(bool invoke_api_callbacks) { |
OS::PrintErr(" done.\n"); |
} |
+ isolate->thread_registry()->ResumeAllThreads(); |
+ |
// Done scavenging. Reset the marker. |
ASSERT(scavenging_); |
scavenging_ = false; |