Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * Concurrent programming using _isolates_: | 6 * Concurrent programming using _isolates_: |
| 7 * independent workers that are similar to threads | 7 * independent workers that are similar to threads |
| 8 * but don't share memory, | 8 * but don't share memory, |
| 9 * communicating only via messages. | 9 * communicating only via messages. |
| 10 */ | 10 */ |
| (...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 269 * thing before it terminates. It will run no further code after the message | 269 * thing before it terminates. It will run no further code after the message |
| 270 * has been sent. | 270 * has been sent. |
| 271 * | 271 * |
| 272 * Adding the same port more than once will only cause it to receive one | 272 * Adding the same port more than once will only cause it to receive one |
| 273 * message, using the last response value that was added. | 273 * message, using the last response value that was added. |
| 274 * | 274 * |
| 275 * If the isolate is already dead, no message will be sent. | 275 * If the isolate is already dead, no message will be sent. |
| 276 * If `response` cannot be sent to the isolate, then the request is ignored. | 276 * If `response` cannot be sent to the isolate, then the request is ignored. |
| 277 * It is recommended to only use simple values that can be sent to all | 277 * It is recommended to only use simple values that can be sent to all |
| 278 * isolates, like `null`, booleans, numbers or strings. | 278 * isolates, like `null`, booleans, numbers or strings. |
| 279 * | |
| 280 * Since isolates run concurrently, it's possible for it to exit before the | |
| 281 * exit listener is established. To avoid this, start the isolate paused, | |
| 282 * add the listener, then resume it. | |
| 279 */ | 283 */ |
| 280 /* TODO(lrn): Can we do better? Can the system recognize this message and | 284 /* TODO(lrn): Can we do better? Can the system recognize this message and |
| 281 * send a reply if the receiving isolate is dead? | 285 * send a reply if the receiving isolate is dead? |
| 282 */ | 286 */ |
| 283 external void addOnExitListener(SendPort responsePort, {Object response}); | 287 external void addOnExitListener(SendPort responsePort, {Object response}); |
| 284 | 288 |
| 285 /** | 289 /** |
| 286 * Stop listening on exit messages from the isolate. | 290 * Stop listening on exit messages from the isolate. |
| 287 * | 291 * |
| 288 * If a call has previously been made to [addOnExitListener] with the same | 292 * If a call has previously been made to [addOnExitListener] with the same |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 357 * | 361 * |
| 358 * The errors are sent back as two elements lists. | 362 * The errors are sent back as two elements lists. |
| 359 * The first element is a `String` representation of the error, usually | 363 * The first element is a `String` representation of the error, usually |
| 360 * created by calling `toString` on the error. | 364 * created by calling `toString` on the error. |
| 361 * The second element is a `String` representation of an accompanying | 365 * The second element is a `String` representation of an accompanying |
| 362 * stack trace, or `null` if no stack trace was provided. | 366 * stack trace, or `null` if no stack trace was provided. |
| 363 * To convert this back to a [StackTrace] object, use [StackTrace.fromString]. | 367 * To convert this back to a [StackTrace] object, use [StackTrace.fromString]. |
| 364 * | 368 * |
| 365 * Listening using the same port more than once does nothing. It will only | 369 * Listening using the same port more than once does nothing. It will only |
| 366 * get each error once. | 370 * get each error once. |
| 371 * | |
| 372 * Since isolates run concurrently, it's possible for it to exit before the | |
|
nweiz
2015/06/12 19:18:55
"exit" -> "emit an error"
Lasse Reichstein Nielsen
2015/06/12 19:38:16
"exit or emit an error"?
It can do either or both
nweiz
2015/06/12 21:05:43
That's true, but if it exits before the listener i
| |
| 373 * error listener is established. To avoid this, start the isolate paused, | |
| 374 * add the listener, then resume it. | |
| 367 */ | 375 */ |
| 368 external void addErrorListener(SendPort port); | 376 external void addErrorListener(SendPort port); |
| 369 | 377 |
| 370 /** | 378 /** |
| 371 * Stop listening for uncaught errors through [port]. | 379 * Stop listening for uncaught errors through [port]. |
| 372 * | 380 * |
| 373 * The `port` should be a port that is listening for errors through | 381 * The `port` should be a port that is listening for errors through |
| 374 * [addErrorListener]. This call requests that the isolate stops sending | 382 * [addErrorListener]. This call requests that the isolate stops sending |
| 375 * errors on the port. | 383 * errors on the port. |
| 376 * | 384 * |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 590 * as the original error, but has no other features of the original error. | 598 * as the original error, but has no other features of the original error. |
| 591 */ | 599 */ |
| 592 class RemoteError implements Error { | 600 class RemoteError implements Error { |
| 593 final String _description; | 601 final String _description; |
| 594 final StackTrace stackTrace; | 602 final StackTrace stackTrace; |
| 595 RemoteError(String description, String stackDescription) | 603 RemoteError(String description, String stackDescription) |
| 596 : _description = description, | 604 : _description = description, |
| 597 stackTrace = new StackTrace.fromString(stackDescription); | 605 stackTrace = new StackTrace.fromString(stackDescription); |
| 598 String toString() => _description; | 606 String toString() => _description; |
| 599 } | 607 } |
| OLD | NEW |