| Index: runtime/vm/isolate.h
|
| diff --git a/runtime/vm/isolate.h b/runtime/vm/isolate.h
|
| index fd303176efebd55419cd3663c827405530c3c1f6..7f59321f13e83b0338066adc027559e9602bb455 100644
|
| --- a/runtime/vm/isolate.h
|
| +++ b/runtime/vm/isolate.h
|
| @@ -113,6 +113,27 @@ class IsolateVisitor {
|
|
|
| class Isolate : public BaseIsolate {
|
| public:
|
| + // Keep both these enums in sync with isolate_patch.dart.
|
| + // The different Isolate API message types.
|
| + enum LibMsgId {
|
| + kPauseMsg = 1,
|
| + kResumeMsg = 2,
|
| + kPingMsg = 3,
|
| + kKillMsg = 4,
|
| + kAddExitMsg = 5,
|
| + kDelExitMsg = 6,
|
| + kAddErrorMsg = 7,
|
| + kDelErrorMsg = 8,
|
| + kErrorFatalMsg = 9,
|
| + kInterruptMsg = 10,
|
| + };
|
| + // The different Isolate API message priorities for ping and kill messages.
|
| + enum LibMsgPriority {
|
| + kImmediateAction = 0,
|
| + kBeforeNextEventAction = 1,
|
| + kAsEventAction = 2
|
| + };
|
| +
|
| ~Isolate();
|
|
|
| static inline Isolate* Current() {
|
| @@ -185,6 +206,8 @@ class Isolate : public BaseIsolate {
|
| }
|
| uint64_t terminate_capability() const { return terminate_capability_; }
|
|
|
| + void SendInternalLibMessage(LibMsgId msg_id, uint64_t capability);
|
| +
|
| Heap* heap() const { return heap_; }
|
| void set_heap(Heap* value) { heap_ = value; }
|
| static intptr_t heap_offset() { return OFFSET_OF(Isolate, heap_); }
|
| @@ -319,17 +342,14 @@ class Isolate : public BaseIsolate {
|
|
|
| // Interrupt bits.
|
| enum {
|
| - kApiInterrupt = 0x1, // An interrupt from Dart_InterruptIsolate.
|
| + kVMInterrupt = 0x1, // Internal VM checks: safepoints, store buffers, etc.
|
| kMessageInterrupt = 0x2, // An interrupt to process an out of band message.
|
| - kVMInterrupt = 0x4, // Internal VM checks: safepoints, store buffers, etc.
|
|
|
| - kInterruptsMask =
|
| - kApiInterrupt |
|
| - kMessageInterrupt |
|
| - kVMInterrupt,
|
| + kInterruptsMask = (kVMInterrupt | kMessageInterrupt),
|
| };
|
|
|
| void ScheduleInterrupts(uword interrupt_bits);
|
| + RawError* HandleInterrupts();
|
| uword GetAndClearInterrupts();
|
|
|
| // Marks all libraries as loaded.
|
|
|