Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1232)

Unified Diff: runtime/include/dart_api.h

Issue 9182001: OOB messages and general message refactor. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/lib/isolate.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/include/dart_api.h
===================================================================
--- runtime/include/dart_api.h (revision 3557)
+++ runtime/include/dart_api.h (working copy)
@@ -424,81 +424,42 @@
// --- Messages and Ports ---
/**
- * Messages are used to communicate between isolates.
- */
-typedef struct _Dart_Message* Dart_Message;
-
-/**
* A port is used to send or receive inter-isolate messages
*/
typedef int64_t Dart_Port;
-const Dart_Port kNoReplyPort = 0;
-
/**
- * A message posting callback.
+ * A message notification callback.
*
- * This callback allows the embedder to provide an alternate delivery
- * mechanism for inter-isolate messages. It is the responsibility of
- * the embedder to call Dart_HandleMessage to process the message.
- *
- * If there is no reply port, then the constant 'kNoReplyPort' is
- * passed as the 'reply_port' parameter.
- *
- * The memory pointed to by 'message' has been allocated by malloc. It
- * is the responsibility of the callback to ensure that free(message)
- * is called once the message has been processed.
- *
- * The callback should return false if it runs into a problem
- * processing this message.
+ * This callback allows the embedder to provide an alternate wakeup
+ * mechanism for the delivery of inter-isolate messages. It is the
+ * responsibility of the embedder to call Dart_HandleMessage to
+ * process the message.
*/
-typedef bool (*Dart_PostMessageCallback)(Dart_Isolate dest_isolate,
- Dart_Port dest_port_id,
- Dart_Port reply_port_id,
- Dart_Message message);
-// TODO(turnidge): Add a Dart_ReleaseMessage to hide allocation details.
+typedef void (*Dart_MessageNotifyCallback)(Dart_Isolate dest_isolate);
-const Dart_Port kCloseAllPorts = 0;
-
/**
- * A close port callback.
+ * Allows embedders to provide an alternative wakeup mechanism for the
+ * delivery of inter-isolate messages. This setting only applies to
+ * the current isolate.
*
- * This callback allows the embedder to receive notification when a
- * port is closed. The constant 'kCloseAllPorts' is passed as the
- * 'port' parameter when all active ports are being closed at once.
- */
-typedef void (*Dart_ClosePortCallback)(Dart_Isolate isolate,
- Dart_Port port_id);
-
-/**
- * Allows embedders to provide an alternative mechanism for sending
- * inter-isolate messages. This setting only applies to the current
- * isolate.
- *
* Most embedders will only call this function once, before isolate
* execution begins. If this function is called after isolate
* execution begins, the embedder is responsible for threading issues.
*/
-DART_EXPORT void Dart_SetMessageCallbacks(
- Dart_PostMessageCallback post_message_callback,
- Dart_ClosePortCallback close_port_callback);
+DART_EXPORT void Dart_SetMessageNotifyCallback(
+ Dart_MessageNotifyCallback message_notify_callback);
// TODO(turnidge): Consider moving this to isolate creation so that it
// is impossible to mess up.
/**
- * Handles a message on the current isolate.
+ * Handles the next pending message for the current isolate.
*
* May generate an unhandled exception error.
*
- * Note that this function does not free the memory associated with
- * 'dart_message'.
- *
* \return A valid handle if no error occurs during the operation.
*/
-DART_EXPORT Dart_Handle Dart_HandleMessage(Dart_Port dest_port_id,
- Dart_Port reply_port_id,
- Dart_Message dart_message);
-// TODO(turnidge): Revisit memory management of 'dart_message'.
+DART_EXPORT Dart_Handle Dart_HandleMessage();
/**
* Processes any incoming messages for the current isolate.
« no previous file with comments | « no previous file | runtime/lib/isolate.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698