Index: runtime/include/dart_api.h |
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h |
index 7094b4be438cf137201308a8bb68600ad593f5d3..fcd8c2528b4b6e7d7e86857300effcbc092ba30e 100755 |
--- a/runtime/include/dart_api.h |
+++ b/runtime/include/dart_api.h |
@@ -65,25 +65,45 @@ typedef unsigned __int64 uint64_t; |
#include <assert.h> |
+ |
/* |
- * ======= |
- * Handles |
- * ======= |
+ * ======== |
+ * Isolates |
+ * ======== |
*/ |
/** |
+ * A port is used to send or receive inter-isolate messages. It is also used |
+ * to identify an isolate (see Dart_Isolate). |
+ */ |
+typedef int64_t Dart_Port; |
+ |
+ |
+/** |
* An isolate is the unit of concurrency in Dart. Each isolate has |
* its own memory and thread of control. No state is shared between |
* isolates. Instead, isolates communicate by message passing. |
* |
* Each thread keeps track of its current isolate, which is the |
* isolate which is ready to execute on the current thread. The |
- * current isolate may be NULL, in which case no isolate is ready to |
- * execute. Most of the Dart apis require there to be a current |
+ * current isolate may be DART_ILLEGAL_ISOLATE, in which case no isolate is |
+ * ready to execute. Most of the Dart apis require there to be a current |
* isolate in order to function without error. The current isolate is |
* set by any call to Dart_CreateIsolate or Dart_EnterIsolate. |
*/ |
-typedef struct _Dart_Isolate* Dart_Isolate; |
+typedef Dart_Port Dart_Isolate; |
+ |
+/** |
+ * DART_ILLEGAL_ISOLATE is an isolate id that is guaranteed never to be associated |
+ * with a valid isolate. |
+ */ |
+#define DART_ILLEGAL_ISOLATE ((Dart_Isolate) 0) |
+ |
+/* |
+ * ======= |
+ * Handles |
+ * ======= |
+ */ |
/** |
* An object reference managed by the Dart VM garbage collector. |
@@ -937,6 +957,8 @@ DART_EXPORT void* Dart_CurrentIsolateData(); |
* was passed to the isolate when it was created. |
* The embedder is responsible for ensuring the consistency of this data |
* with respect to the lifecycle of an Isolate. |
+ * |
+ * \return pointer to data or NULL if the isolate could not be found. |
*/ |
DART_EXPORT void* Dart_IsolateData(Dart_Isolate isolate); |
@@ -954,8 +976,10 @@ DART_EXPORT Dart_Handle Dart_DebugName(); |
* |
* Requires there to be no current isolate. Multiple threads may not be in |
* the same isolate at once. |
+ * |
+ * \return true if isolate was entered, false otherwise. |
*/ |
-DART_EXPORT void Dart_EnterIsolate(Dart_Isolate isolate); |
+DART_EXPORT bool Dart_EnterIsolate(Dart_Isolate isolate); |
/** |
* Notifies the VM that the current isolate is about to make a blocking call. |
@@ -1040,8 +1064,10 @@ DART_EXPORT Dart_Handle Dart_CreateScriptSnapshot(uint8_t** buffer, |
* Dart_IsolateInterruptCallback). |
* |
* \param isolate The isolate to be interrupted. |
+ * |
+ * \return true if isolate is scheduled to be be interrupted, false otherwise. |
*/ |
-DART_EXPORT void Dart_InterruptIsolate(Dart_Isolate isolate); |
+DART_EXPORT bool Dart_InterruptIsolate(Dart_Isolate isolate); |
/** |
* Make isolate runnable. |
@@ -1052,6 +1078,8 @@ DART_EXPORT void Dart_InterruptIsolate(Dart_Isolate isolate); |
* This function does not expect there to be a current isolate. |
* |
* \param isolate The isolate to be made runnable. |
+ * |
+ * \return true if isolate was made runnable, false otherwise. |
*/ |
DART_EXPORT bool Dart_IsolateMakeRunnable(Dart_Isolate isolate); |
@@ -1063,15 +1091,10 @@ DART_EXPORT bool Dart_IsolateMakeRunnable(Dart_Isolate isolate); |
*/ |
/** |
- * A port is used to send or receive inter-isolate messages |
- */ |
-typedef int64_t Dart_Port; |
- |
-/** |
- * ILLEGAL_PORT is a port number guaranteed never to be associated with a valid |
- * port. |
+ * DART_ILLEGAL_PORT is a port number guaranteed never to be associated with a |
+ * valid port. |
*/ |
-#define ILLEGAL_PORT ((Dart_Port) 0) |
+#define DART_ILLEGAL_PORT ((Dart_Port) 0) |
/** |
* A message notification callback. |
@@ -2786,8 +2809,8 @@ DART_EXPORT bool Dart_IsServiceIsolate(Dart_Isolate isolate); |
/** |
* Returns the port that script load requests should be sent on. |
* |
- * \return Returns the port for load requests or ILLEGAL_PORT if the service |
- * isolate failed to startup or does not support load requests. |
+ * \return Returns the port for load requests or DART_ILLEGAL_PORT if the |
+ * service isolate failed to startup or does not support load requests. |
*/ |
DART_EXPORT Dart_Port Dart_ServiceWaitForLoadPort(); |