| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "include/dart_api.h" | 5 #include "include/dart_api.h" |
| 6 #include "include/dart_mirrors_api.h" | 6 #include "include/dart_mirrors_api.h" |
| 7 #include "include/dart_native_api.h" | 7 #include "include/dart_native_api.h" |
| 8 | 8 |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 #include "lib/stacktrace.h" | 10 #include "lib/stacktrace.h" |
| (...skipping 1326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1337 DARTSCOPE(Thread::Current()); | 1337 DARTSCOPE(Thread::Current()); |
| 1338 Isolate* I = T->isolate(); | 1338 Isolate* I = T->isolate(); |
| 1339 return Api::NewHandle(T, String::New(I->name())); | 1339 return Api::NewHandle(T, String::New(I->name())); |
| 1340 } | 1340 } |
| 1341 | 1341 |
| 1342 | 1342 |
| 1343 DART_EXPORT void Dart_EnterIsolate(Dart_Isolate isolate) { | 1343 DART_EXPORT void Dart_EnterIsolate(Dart_Isolate isolate) { |
| 1344 CHECK_NO_ISOLATE(Isolate::Current()); | 1344 CHECK_NO_ISOLATE(Isolate::Current()); |
| 1345 // TODO(16615): Validate isolate parameter. | 1345 // TODO(16615): Validate isolate parameter. |
| 1346 Isolate* iso = reinterpret_cast<Isolate*>(isolate); | 1346 Isolate* iso = reinterpret_cast<Isolate*>(isolate); |
| 1347 if (iso->HasMutatorThread()) { | |
| 1348 FATAL("Multiple mutators within one isolate is not supported."); | |
| 1349 } | |
| 1350 if (!Thread::EnterIsolate(iso)) { | 1347 if (!Thread::EnterIsolate(iso)) { |
| 1351 FATAL("Unable to Enter Isolate as Dart VM is shutting down"); | 1348 FATAL("Unable to Enter Isolate : " |
| 1349 "Multiple mutators entering an isolate / " |
| 1350 "Dart VM is shutting down"); |
| 1352 } | 1351 } |
| 1353 // A Thread structure has been associated to the thread, we do the | 1352 // A Thread structure has been associated to the thread, we do the |
| 1354 // safepoint transition explicity here instead of using the | 1353 // safepoint transition explicity here instead of using the |
| 1355 // TransitionXXX scope objects as the reverse transition happens | 1354 // TransitionXXX scope objects as the reverse transition happens |
| 1356 // outside this scope in Dart_ExitIsolate/Dart_ShutdownIsolate. | 1355 // outside this scope in Dart_ExitIsolate/Dart_ShutdownIsolate. |
| 1357 Thread* T = Thread::Current(); | 1356 Thread* T = Thread::Current(); |
| 1358 T->set_execution_state(Thread::kThreadInNative); | 1357 T->set_execution_state(Thread::kThreadInNative); |
| 1359 T->EnterSafepoint(); | 1358 T->EnterSafepoint(); |
| 1360 } | 1359 } |
| 1361 | 1360 |
| (...skipping 5134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6496 | 6495 |
| 6497 DART_EXPORT bool Dart_IsPrecompiledRuntime() { | 6496 DART_EXPORT bool Dart_IsPrecompiledRuntime() { |
| 6498 #if defined(DART_PRECOMPILED_RUNTIME) | 6497 #if defined(DART_PRECOMPILED_RUNTIME) |
| 6499 return true; | 6498 return true; |
| 6500 #else | 6499 #else |
| 6501 return false; | 6500 return false; |
| 6502 #endif | 6501 #endif |
| 6503 } | 6502 } |
| 6504 | 6503 |
| 6505 } // namespace dart | 6504 } // namespace dart |
| OLD | NEW |