| Index: runtime/vm/thread.cc
|
| diff --git a/runtime/vm/thread.cc b/runtime/vm/thread.cc
|
| index 3b3eb3308d30b292147168449f670ba1f62033f5..dff8b1db7f831607ff64fe68181255bbc4fb0d71 100644
|
| --- a/runtime/vm/thread.cc
|
| +++ b/runtime/vm/thread.cc
|
| @@ -75,7 +75,8 @@ void Thread::CleanUp() {
|
|
|
| Thread::Thread(bool init_vm_constants)
|
| : isolate_(NULL),
|
| - store_buffer_block_(NULL) {
|
| + store_buffer_block_(NULL),
|
| + pass_safepoint_(kNoSafepointId) {
|
| ClearState();
|
| #define DEFAULT_INIT(type_name, member_name, init_expr, default_init_value) \
|
| member_name = default_init_value;
|
| @@ -168,11 +169,13 @@ void Thread::ExitIsolate() {
|
| }
|
|
|
|
|
| -void Thread::EnterIsolateAsHelper(Isolate* isolate) {
|
| +void Thread::EnterIsolateAsHelper(Isolate* isolate,
|
| + SafepointId pass_safepoint) {
|
| Thread* thread = Thread::Current();
|
| ASSERT(thread != NULL);
|
| ASSERT(thread->isolate() == NULL);
|
| thread->isolate_ = isolate;
|
| + thread->pass_safepoint_ = pass_safepoint;
|
| ASSERT(isolate->heap() != NULL);
|
| thread->heap_ = isolate->heap();
|
| ASSERT(thread->thread_state() == NULL);
|
| @@ -192,6 +195,7 @@ void Thread::ExitIsolateAsHelper() {
|
| ASSERT(isolate != NULL);
|
| thread->Unschedule();
|
| thread->set_thread_state(NULL);
|
| + thread->pass_safepoint_ = kNoSafepointId;
|
| thread->isolate_ = NULL;
|
| thread->heap_ = NULL;
|
| ASSERT(!isolate->MutatorThreadIsCurrentThread());
|
|
|