| Index: runtime/vm/isolate.h
|
| ===================================================================
|
| --- runtime/vm/isolate.h (revision 20976)
|
| +++ runtime/vm/isolate.h (working copy)
|
| @@ -21,6 +21,7 @@
|
| class ApiState;
|
| class CodeIndexTable;
|
| class Debugger;
|
| +class Function;
|
| class HandleScope;
|
| class HandleVisitor;
|
| class Heap;
|
| @@ -35,6 +36,7 @@
|
| class RawContext;
|
| class RawDouble;
|
| class RawMint;
|
| +class RawObject;
|
| class RawInteger;
|
| class RawError;
|
| class Simulator;
|
| @@ -274,9 +276,15 @@
|
| void ScheduleInterrupts(uword interrupt_bits);
|
| uword GetAndClearInterrupts();
|
|
|
| + bool MakeRunnable();
|
| + void Run();
|
| +
|
| MessageHandler* message_handler() const { return message_handler_; }
|
| void set_message_handler(MessageHandler* value) { message_handler_ = value; }
|
|
|
| + bool is_runnable() const { return is_runnable_; }
|
| + void set_is_runnable(bool value) { is_runnable_ = value; }
|
| +
|
| uword spawn_data() const { return spawn_data_; }
|
| void set_spawn_data(uword value) { spawn_data_ = value; }
|
|
|
| @@ -295,6 +303,8 @@
|
| void set_ic_data_array(RawArray* value) { ic_data_array_ = value; }
|
| ICData* GetICDataForDeoptId(intptr_t deopt_id) const;
|
|
|
| + Mutex* mutex() const { return mutex_; }
|
| +
|
| Debugger* debugger() const { return debugger_; }
|
|
|
| Simulator* simulator() const { return simulator_; }
|
| @@ -463,6 +473,7 @@
|
| uword saved_stack_limit_;
|
| MessageHandler* message_handler_;
|
| uword spawn_data_;
|
| + bool is_runnable_;
|
| GcPrologueCallbacks gc_prologue_callbacks_;
|
| GcEpilogueCallbacks gc_epilogue_callbacks_;
|
|
|
| @@ -553,6 +564,31 @@
|
| DISALLOW_COPY_AND_ASSIGN(SwitchIsolateScope);
|
| };
|
|
|
| +
|
| +class IsolateSpawnState {
|
| + public:
|
| + IsolateSpawnState(const Function& func, const Function& callback_func);
|
| + explicit IsolateSpawnState(const char* script_url);
|
| + ~IsolateSpawnState();
|
| +
|
| + Isolate* isolate() const { return isolate_; }
|
| + void set_isolate(Isolate* value) { isolate_ = value; }
|
| + char* script_url() const { return script_url_; }
|
| + char* library_url() const { return library_url_; }
|
| + char* function_name() const { return function_name_; }
|
| + char* exception_callback_name() const { return exception_callback_name_; }
|
| +
|
| + RawObject* ResolveFunction();
|
| + void Cleanup();
|
| +
|
| + private:
|
| + Isolate* isolate_;
|
| + char* script_url_;
|
| + char* library_url_;
|
| + char* function_name_;
|
| + char* exception_callback_name_;
|
| +};
|
| +
|
| } // namespace dart
|
|
|
| #endif // VM_ISOLATE_H_
|
|
|