Chromium Code Reviews| Index: runtime/vm/kernel_isolate.h |
| diff --git a/runtime/vm/kernel_isolate.h b/runtime/vm/kernel_isolate.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..bf817fc69312cb91b9439e8fc829461571c156aa |
| --- /dev/null |
| +++ b/runtime/vm/kernel_isolate.h |
| @@ -0,0 +1,63 @@ |
| +// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +#ifndef RUNTIME_VM_KERNEL_ISOLATE_H_ |
| +#define RUNTIME_VM_KERNEL_ISOLATE_H_ |
| + |
| +#if !defined(DART_PRECOMPILED_RUNTIME) |
| + |
| +#include "include/dart_api.h" |
| + |
| +#include "vm/allocation.h" |
| +#include "vm/dart.h" |
| +#include "vm/os_thread.h" |
| + |
| +namespace dart { |
| + |
| +class ObjectPointerVisitor; |
| +class SendPort; |
| + |
| +class KernelIsolate : public AllStatic { |
| + public: |
| + static const char* kName; |
| + |
| + static void Run(); |
| + |
| + static bool Exists(); |
| + static bool IsRunning(); |
| + static bool IsKernelIsolate(const Isolate* isolate); |
| + static Dart_Port WaitForKernelPort(); |
| + static Dart_Port KernelPort() { return kernel_port_; } |
| + |
| + static bool LoadScript(const String& url, const String& source); |
| + |
| + protected: |
| + static Monitor* monitor_; |
| + static Dart_IsolateCreateCallback create_callback_; |
| + |
| + static void InitCallback(Isolate* I); |
| + static void SetKernelIsolate(Isolate* isolate); |
| + static void SetLoadPort(Dart_Port port); |
| + static void FinishedInitializing(); |
| + static void FinishedExiting(); |
| + |
| + static Dart_Port kernel_port_; |
| + static Isolate* isolate_; |
| + static bool initializing_; |
| + static bool shutting_down_; |
| + |
| + |
| + static Dart_IsolateCreateCallback create_callback() { |
| + return create_callback_; |
| + } |
| + |
| + friend class Dart; |
| + friend class RunKernelTask; |
| +}; |
|
siva
2016/12/02 20:59:38
I agree that this class can be refactored to suppo
hausner
2016/12/03 01:29:00
I agree, but would like to address this in a later
|
| + |
| +} // namespace dart |
| + |
| +#endif // DART_PRECOMPILED_RUNTIME |
| + |
| +#endif // RUNTIME_VM_KERNEL_ISOLATE_H_ |