| Index: runtime/vm/isolate.h
|
| diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
|
| index a21554e6c5f54f445d1227eeef67009349d27193..e38374d7e713bcf959c6af53567b2a0d7549b7b3 100644
|
| --- a/runtime/vm/isolate.h
|
| +++ b/runtime/vm/isolate.h
|
| @@ -755,6 +755,12 @@ class Isolate : public BaseIsolate {
|
| mutator_thread_->set_zone(zone);
|
| }
|
|
|
| + static void KillIsolate(Isolate* isolate);
|
| + static void KillAllIsolates();
|
| +
|
| + static void DisableIsolateCreation();
|
| + static void EnableIsolateCreation();
|
| +
|
| private:
|
| friend class Dart; // Init, InitOnce, Shutdown.
|
|
|
| @@ -764,6 +770,7 @@ class Isolate : public BaseIsolate {
|
| static Isolate* Init(const char* name_prefix,
|
| const Dart_IsolateFlags& api_flags,
|
| bool is_vm_isolate = false);
|
| + void LowLevelShutdown();
|
| void Shutdown();
|
|
|
| void BuildName(const char* name_prefix);
|
| @@ -930,12 +937,14 @@ class Isolate : public BaseIsolate {
|
| static void WakePauseEventHandler(Dart_Isolate isolate);
|
|
|
| // Manage list of existing isolates.
|
| - static void AddIsolateTolist(Isolate* isolate);
|
| + static bool AddIsolateToList(Isolate* isolate);
|
| static void RemoveIsolateFromList(Isolate* isolate);
|
| static void CheckForDuplicateThreadState(InterruptableThreadState* state);
|
|
|
| - static Monitor* isolates_list_monitor_; // Protects isolates_list_head_
|
| + // This monitor protects isolates_list_head_, and creation_enabled_.
|
| + static Monitor* isolates_list_monitor_;
|
| static Isolate* isolates_list_head_;
|
| + static bool creation_enabled_;
|
|
|
| #define REUSABLE_FRIEND_DECLARATION(name) \
|
| friend class Reusable##name##HandleScope;
|
|
|