| 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 "vm/class_finalizer.h" | 10 #include "vm/class_finalizer.h" |
| (...skipping 1338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1349 DARTSCOPE(isolate); | 1349 DARTSCOPE(isolate); |
| 1350 return Api::NewHandle(isolate, String::New(isolate->name())); | 1350 return Api::NewHandle(isolate, String::New(isolate->name())); |
| 1351 } | 1351 } |
| 1352 | 1352 |
| 1353 | 1353 |
| 1354 | 1354 |
| 1355 DART_EXPORT void Dart_EnterIsolate(Dart_Isolate isolate) { | 1355 DART_EXPORT void Dart_EnterIsolate(Dart_Isolate isolate) { |
| 1356 CHECK_NO_ISOLATE(Isolate::Current()); | 1356 CHECK_NO_ISOLATE(Isolate::Current()); |
| 1357 // TODO(16615): Validate isolate parameter. | 1357 // TODO(16615): Validate isolate parameter. |
| 1358 Isolate* iso = reinterpret_cast<Isolate*>(isolate); | 1358 Isolate* iso = reinterpret_cast<Isolate*>(isolate); |
| 1359 Isolate::SetCurrent(iso); | 1359 if (iso->mutator_thread() != NULL) { |
| 1360 FATAL("Multiple mutators within one isolate is not supported."); |
| 1361 } |
| 1362 Thread::EnterIsolate(iso); |
| 1360 } | 1363 } |
| 1361 | 1364 |
| 1362 | 1365 |
| 1363 DART_EXPORT void Dart_IsolateBlocked() { | 1366 DART_EXPORT void Dart_IsolateBlocked() { |
| 1364 Isolate* isolate = Isolate::Current(); | 1367 Isolate* isolate = Isolate::Current(); |
| 1365 CHECK_ISOLATE(isolate); | 1368 CHECK_ISOLATE(isolate); |
| 1366 IsolateProfilerData* profiler_data = isolate->profiler_data(); | 1369 IsolateProfilerData* profiler_data = isolate->profiler_data(); |
| 1367 if (profiler_data == NULL) { | 1370 if (profiler_data == NULL) { |
| 1368 return; | 1371 return; |
| 1369 } | 1372 } |
| 1370 profiler_data->Block(); | 1373 profiler_data->Block(); |
| 1371 } | 1374 } |
| 1372 | 1375 |
| 1373 | 1376 |
| 1374 DART_EXPORT void Dart_IsolateUnblocked() { | 1377 DART_EXPORT void Dart_IsolateUnblocked() { |
| 1375 Isolate* isolate = Isolate::Current(); | 1378 Isolate* isolate = Isolate::Current(); |
| 1376 CHECK_ISOLATE(isolate); | 1379 CHECK_ISOLATE(isolate); |
| 1377 IsolateProfilerData* profiler_data = isolate->profiler_data(); | 1380 IsolateProfilerData* profiler_data = isolate->profiler_data(); |
| 1378 if (profiler_data == NULL) { | 1381 if (profiler_data == NULL) { |
| 1379 return; | 1382 return; |
| 1380 } | 1383 } |
| 1381 profiler_data->Unblock(); | 1384 profiler_data->Unblock(); |
| 1382 } | 1385 } |
| 1383 | 1386 |
| 1384 | 1387 |
| 1385 DART_EXPORT void Dart_ExitIsolate() { | 1388 DART_EXPORT void Dart_ExitIsolate() { |
| 1386 CHECK_ISOLATE(Isolate::Current()); | 1389 CHECK_ISOLATE(Isolate::Current()); |
| 1387 Isolate::SetCurrent(NULL); | 1390 Thread::ExitIsolate(); |
| 1388 } | 1391 } |
| 1389 | 1392 |
| 1390 | 1393 |
| 1391 DART_EXPORT Dart_Handle Dart_IsolateSetStrictCompilation(bool value) { | 1394 DART_EXPORT Dart_Handle Dart_IsolateSetStrictCompilation(bool value) { |
| 1392 CHECK_ISOLATE(Isolate::Current()); | 1395 CHECK_ISOLATE(Isolate::Current()); |
| 1393 Isolate* isolate = Isolate::Current(); | 1396 Isolate* isolate = Isolate::Current(); |
| 1394 if (isolate->has_compiled()) { | 1397 if (isolate->has_compiled()) { |
| 1395 return Api::NewError( | 1398 return Api::NewError( |
| 1396 "%s expects that the isolate has not yet compiled code.", CURRENT_FUNC); | 1399 "%s expects that the isolate has not yet compiled code.", CURRENT_FUNC); |
| 1397 } | 1400 } |
| (...skipping 4122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5520 | 5523 |
| 5521 | 5524 |
| 5522 DART_EXPORT void Dart_RegisterRootServiceRequestCallback( | 5525 DART_EXPORT void Dart_RegisterRootServiceRequestCallback( |
| 5523 const char* name, | 5526 const char* name, |
| 5524 Dart_ServiceRequestCallback callback, | 5527 Dart_ServiceRequestCallback callback, |
| 5525 void* user_data) { | 5528 void* user_data) { |
| 5526 Service::RegisterRootEmbedderCallback(name, callback, user_data); | 5529 Service::RegisterRootEmbedderCallback(name, callback, user_data); |
| 5527 } | 5530 } |
| 5528 | 5531 |
| 5529 } // namespace dart | 5532 } // namespace dart |
| OLD | NEW |