Chromium Code Reviews| Index: sdk/lib/isolate/isolate.dart |
| diff --git a/sdk/lib/isolate/isolate.dart b/sdk/lib/isolate/isolate.dart |
| index 8caccdb4e0ac56198ceae436b91e2e68350d3211..cb09da7c8b0e7b3e620e36631752ac3c008477b0 100644 |
| --- a/sdk/lib/isolate/isolate.dart |
| +++ b/sdk/lib/isolate/isolate.dart |
| @@ -7,9 +7,9 @@ |
| * independent workers that are similar to threads |
| * but don't share memory, |
| * communicating only via messages. |
| - * |
| + * |
| * To use this library in your code: |
| - * |
| + * |
| * import 'dart:isolate'; |
| */ |
| library dart.isolate; |
| @@ -162,19 +162,27 @@ class Isolate { |
| * Creates and spawns an isolate that shares the same code as the current |
| * isolate. |
| * |
| - * The argument [entryPoint] specifies the entry point of the spawned |
| - * isolate. It must be a top-level function or a static method that |
| - * takes one argument - that is, one-parameter functions that can be |
| - * compile-time constant function values. |
| - * It is not allowed to pass the value of function expressions or an instance |
| - * method extracted from an object. |
| + * The argument [entryPoint] specifies the initial function to call |
| + * in the spawned isolate. |
| + * The entry-point function is invoked in the new isolate with [message] |
| + * as the only argument. |
| + * |
| + * The function must be a top-level function or a static method |
| + * that can be called with a single argument - |
|
eernst
2016/06/14 11:36:47
Might as well use ',' because the single hyphen is
Lasse Reichstein Nielsen
2016/07/04 11:47:32
Done.
|
| + * that is, a compile-time constant function value |
| + * which accepts at least one positional parameter |
| + * and has at most one required positional parameter. |
| + * The function may accept any number of optional parameters, |
| + * as long as they *can* be called with just a single argument. |
|
eernst
2016/06/14 11:36:47
There's a singular/plural issue here, and I also t
Lasse Reichstein Nielsen
2016/07/04 11:47:33
Done.
|
| + * The value of a function expressions or a torn-off instance methods are not |
| + * allowed. |
|
eernst
2016/06/14 11:36:47
A bit of confusion here, too. Maybe it would work
Lasse Reichstein Nielsen
2016/07/04 11:47:33
You can't pass an expression, only its value.
Rewo
|
| * |
| - * The entry-point function is invoked with the initial [message]. |
| * Usually the initial [message] contains a [SendPort] so |
| * that the spawner and spawnee can communicate with each other. |
| * |
| * If the [paused] parameter is set to `true`, |
| * the isolate will start up in a paused state, |
| + * just before calling the [entryPoint] function with the [message], |
| * as if by an initial call of `isolate.pause(isolate.pauseCapability)`. |
| * To resume the isolate, call `isolate.resume(isolate.pauseCapability)`. |
| * |
| @@ -184,19 +192,22 @@ class Isolate { |
| * corresponding parameter and was processed before the isolate starts |
| * running. |
| * |
| + * If [errorsAreFatal] is omitted, the platform may choose a default behavior |
| + * or inherit the current isolate's behavior. |
| + * |
| * You can also call the [setErrorsFatal], [addOnExitListener] and |
| * [addErrorListener] methods on the returned isolate, but unless the |
| * isolate was started as [paused], it may already have terminated |
| * before those methods can complete. |
| * |
| - * Returns a future that will complete with an [Isolate] instance if the |
| + * Returns a future which will complete with an [Isolate] instance if the |
| * spawning succeeded. It will complete with an error otherwise. |
| */ |
| external static Future<Isolate> spawn(void entryPoint(message), var message, |
| - { bool paused: false, |
| - bool errorsAreFatal, |
| - SendPort onExit, |
| - SendPort onError }); |
| + {bool paused: false, |
| + bool errorsAreFatal, |
| + SendPort onExit, |
| + SendPort onError}); |
| /** |
| * Creates and spawns an isolate that runs the code from the library with |
| @@ -291,13 +302,16 @@ class Isolate { |
| /** |
| * Requests the isolate to pause. |
| * |
| - * The isolate should stop handling events by pausing its event queue. |
| - * The request will eventually make the isolate stop doing anything. |
| - * It will be handled before any other messages that are later sent to the |
| - * isolate from the current isolate, but no other guarantees are provided. |
| + * When the isolate receives the pause command, it will stop |
|
floitsch
2016/06/16 08:36:34
Stops
Lasse Reichstein Nielsen
2016/07/04 11:47:33
Done.
|
| + * processing events from the event loop queue. |
| + * It may still add new events to the queue in response to, e.g., timers |
| + * or receive port messages. When the isolate is resumed, it will handle |
|
floitsch
2016/06/16 08:36:35
Maybe "handles" but here it really is in the futur
Lasse Reichstein Nielsen
2016/07/04 11:47:32
Used "handles" and improved the second half of the
|
| + * the enqueued events in the order they were enqueued. |
| * |
| - * The event loop may be paused before previously sent, but not yet exeuted, |
| - * messages have been reached. |
| + * The pause request is sent through the isolate's command port and will be |
| + * handled when it is received, after other previously sent command messages, |
| + * but before already enqueued event loop events that hasn't been processed |
|
eernst
2016/06/14 11:36:47
'after any previously sent command messages, but b
Lasse Reichstein Nielsen
2016/07/04 11:47:32
Event loop events are enqueued until they are proc
|
| + * yet. |
| * |
| * If [resumeCapability] is provided, it is used to identity the pause, |
| * and must be used again to end the pause using [resume]. |