| Index: runtime/vm/port.h
|
| ===================================================================
|
| --- runtime/vm/port.h (revision 1904)
|
| +++ runtime/vm/port.h (working copy)
|
| @@ -13,20 +13,23 @@
|
|
|
| class Isolate;
|
| class Mutex;
|
| +class PortMapTestPeer;
|
|
|
| class PortMap: public AllStatic {
|
| public:
|
| // Allocate a port in the current isolate and return its VM-global id.
|
| static Dart_Port CreatePort();
|
|
|
| + // Indicates that a port has had a ReceivePort created for it at the
|
| + // dart language level. The port remains live until it is closed.
|
| + static void SetLive(Dart_Port id);
|
| +
|
| // Close the port with id. All pending messages will be dropped.
|
| static void ClosePort(Dart_Port id);
|
|
|
| // Close all the ports of the current isolate.
|
| static void ClosePorts();
|
|
|
| - static bool IsActivePort(Dart_Port id);
|
| -
|
| // Enqueues the message in the port with id. Returns false if the port is not
|
| // active any longer.
|
| //
|
| @@ -39,17 +42,23 @@
|
| static void InitOnce();
|
|
|
| private:
|
| + friend class dart::PortMapTestPeer;
|
| +
|
| // Mapping between port numbers and isolates.
|
| // Free entries have id == 0 and isolate == NULL. Deleted entries have id == 0
|
| // and isolate == deleted_entry_.
|
| typedef struct {
|
| Dart_Port port;
|
| Isolate* isolate;
|
| + bool live;
|
| } Entry;
|
|
|
| // Allocate a new unique port.
|
| static Dart_Port AllocatePort();
|
|
|
| + static bool IsActivePort(Dart_Port id);
|
| + static bool IsLivePort(Dart_Port id);
|
| +
|
| static intptr_t FindPort(Dart_Port port);
|
| static void Rehash(intptr_t new_capacity);
|
|
|
|
|