| Index: runtime/vm/isolate.cc
|
| diff --git a/runtime/vm/isolate.cc b/runtime/vm/isolate.cc
|
| index 1a098fa78fa8b2587fea530accbbe10c0d887853..768a6471e07ae90e5d5b81e9709e346a5d71413c 100644
|
| --- a/runtime/vm/isolate.cc
|
| +++ b/runtime/vm/isolate.cc
|
| @@ -766,7 +766,6 @@ Isolate::Isolate(const Dart_IsolateFlags& api_flags)
|
| simulator_(NULL),
|
| mutex_(new Mutex()),
|
| saved_stack_limit_(0),
|
| - stack_base_(0),
|
| stack_overflow_flags_(0),
|
| stack_overflow_count_(0),
|
| message_handler_(NULL),
|
| @@ -798,7 +797,9 @@ Isolate::Isolate(const Dart_IsolateFlags& api_flags)
|
| field_invalidation_gen_(kInvalidGen),
|
| prefix_invalidation_gen_(kInvalidGen) {
|
| flags_.CopyFrom(api_flags);
|
| - Thread::Current()->set_vm_tag(VMTag::kEmbedderTagId);
|
| + // TODO(asiva): A Thread is not available here, need to figure out
|
| + // how the vm_tag (kEmbedderTagId) can be set, these tags need to
|
| + // move to the OSThread structure.
|
| set_user_tag(UserTags::kDefaultUserTag);
|
| }
|
|
|
| @@ -987,19 +988,7 @@ void Isolate::BuildName(const char* name_prefix) {
|
| }
|
|
|
|
|
| -// TODO(5411455): Use flag to override default value and Validate the
|
| -// stack size by querying OS.
|
| -uword Isolate::GetSpecifiedStackSize() {
|
| - ASSERT(Isolate::kStackSizeBuffer < OSThread::GetMaxStackSize());
|
| - uword stack_size = OSThread::GetMaxStackSize() - Isolate::kStackSizeBuffer;
|
| - return stack_size;
|
| -}
|
| -
|
| -
|
| void Isolate::SetStackLimitFromStackBase(uword stack_base) {
|
| - // Set stack base.
|
| - stack_base_ = stack_base;
|
| -
|
| // Set stack limit.
|
| #if defined(USING_SIMULATOR)
|
| // Ignore passed-in native stack top and use Simulator stack top.
|
| @@ -1008,7 +997,7 @@ void Isolate::SetStackLimitFromStackBase(uword stack_base) {
|
| stack_base = sim->StackTop();
|
| // The overflow area is accounted for by the simulator.
|
| #endif
|
| - SetStackLimit(stack_base - GetSpecifiedStackSize());
|
| + SetStackLimit(stack_base - OSThread::GetSpecifiedStackSize());
|
| }
|
|
|
|
|
| @@ -1026,19 +1015,6 @@ void Isolate::SetStackLimit(uword limit) {
|
|
|
| void Isolate::ClearStackLimit() {
|
| SetStackLimit(~static_cast<uword>(0));
|
| - stack_base_ = 0;
|
| -}
|
| -
|
| -
|
| -bool Isolate::GetProfilerStackBounds(uword* lower, uword* upper) const {
|
| - uword stack_upper = stack_base_;
|
| - if (stack_upper == 0) {
|
| - return false;
|
| - }
|
| - uword stack_lower = stack_upper - GetSpecifiedStackSize();
|
| - *lower = stack_lower;
|
| - *upper = stack_upper;
|
| - return true;
|
| }
|
|
|
|
|
| @@ -1322,7 +1298,6 @@ bool Isolate::NotifyErrorListeners(const String& msg,
|
| static MessageHandler::MessageStatus RunIsolate(uword parameter) {
|
| Isolate* isolate = reinterpret_cast<Isolate*>(parameter);
|
| IsolateSpawnState* state = NULL;
|
| - Thread* thread = Thread::Current();
|
| {
|
| // TODO(turnidge): Is this locking required here at all anymore?
|
| MutexLocker ml(isolate->mutex());
|
| @@ -1330,6 +1305,7 @@ static MessageHandler::MessageStatus RunIsolate(uword parameter) {
|
| }
|
| {
|
| StartIsolateScope start_scope(isolate);
|
| + Thread* thread = Thread::Current();
|
| ASSERT(thread->isolate() == isolate);
|
| StackZone zone(thread);
|
| HandleScope handle_scope(thread);
|
| @@ -1432,8 +1408,8 @@ static void ShutdownIsolate(uword parameter) {
|
| {
|
| // Print the error if there is one. This may execute dart code to
|
| // print the exception object, so we need to use a StartIsolateScope.
|
| - Thread* thread = Thread::Current();
|
| StartIsolateScope start_scope(isolate);
|
| + Thread* thread = Thread::Current();
|
| ASSERT(thread->isolate() == isolate);
|
| StackZone zone(thread);
|
| HandleScope handle_scope(thread);
|
| @@ -1702,8 +1678,6 @@ void Isolate::Shutdown() {
|
| // TODO(5411455): For now just make sure there are no current isolates
|
| // as we are shutting down the isolate.
|
| Thread::ExitIsolate();
|
| - // All threads should have exited by now.
|
| - thread_registry()->CheckNotScheduled(this);
|
| }
|
|
|
|
|
|
|