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

Side by Side Diff: sdk/lib/isolate/isolate.dart

Issue 43663003: dart2js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 13 matching lines...) Expand all
24 // TODO(floitsch): clean up spawn exception. 24 // TODO(floitsch): clean up spawn exception.
25 const IsolateSpawnException(String this._s); 25 const IsolateSpawnException(String this._s);
26 String toString() => "IsolateSpawnException: '$_s'"; 26 String toString() => "IsolateSpawnException: '$_s'";
27 final String _s; 27 final String _s;
28 } 28 }
29 29
30 class Isolate { 30 class Isolate {
31 31
32 final SendPort _controlPort; 32 final SendPort _controlPort;
33 33
34 Isolate._fromControlPort(this._controlPort); 34 Isolate._fromControlPort(SendPort controlPort)
35 : this._controlPort = controlPort;
35 36
36 /** 37 /**
37 * Creates and spawns an isolate that shares the same code as the current 38 * Creates and spawns an isolate that shares the same code as the current
38 * isolate. 39 * isolate.
39 * 40 *
40 * The argument [entryPoint] specifies the entry point of the spawned 41 * The argument [entryPoint] specifies the entry point of the spawned
41 * isolate. It must be a static top-level function or a static method that 42 * isolate. It must be a static top-level function or a static method that
42 * takes no arguments. It is not allowed to pass a function closure. 43 * takes no arguments. It is not allowed to pass a function closure.
43 * 44 *
44 * The entry-point function is invoked with the initial [message]. 45 * The entry-point function is invoked with the initial [message].
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 * The content of [message] can be: primitive values (null, num, bool, double, 92 * The content of [message] can be: primitive values (null, num, bool, double,
92 * String), instances of [SendPort], and lists and maps whose elements are any 93 * String), instances of [SendPort], and lists and maps whose elements are any
93 * of these. List and maps are also allowed to be cyclic. 94 * of these. List and maps are also allowed to be cyclic.
94 * 95 *
95 * In the special circumstances when two isolates share the same code and are 96 * In the special circumstances when two isolates share the same code and are
96 * running in the same process (e.g. isolates created via [spawnFunction]), it 97 * running in the same process (e.g. isolates created via [spawnFunction]), it
97 * is also possible to send object instances (which would be copied in the 98 * is also possible to send object instances (which would be copied in the
98 * process). This is currently only supported by the dartvm. For now, the 99 * process). This is currently only supported by the dartvm. For now, the
99 * dart2js compiler only supports the restricted messages described above. 100 * dart2js compiler only supports the restricted messages described above.
100 * 101 *
101 * The second argument [replyTo] is deprecated. 102 * The second argument [replyTo] is deprecated and its value is ignored.
Lasse Reichstein Nielsen 2013/10/25 12:45:59 Consider removing it now.
floitsch 2013/10/25 13:52:56 Can't.
102 */ 103 */
103 void send(var message, [SendPort replyTo]); 104 void send(var message, [SendPort replyTo]);
104 105
105 /** 106 /**
106 * Tests whether [other] is a [SendPort] pointing to the same 107 * Tests whether [other] is a [SendPort] pointing to the same
107 * [ReceivePort] as this one. 108 * [ReceivePort] as this one.
108 */ 109 */
109 bool operator==(var other); 110 bool operator==(var other);
110 111
111 /** 112 /**
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 const _IsolateUnhandledException(this.message, this.source, this.stackTrace); 224 const _IsolateUnhandledException(this.message, this.source, this.stackTrace);
224 225
225 String toString() { 226 String toString() {
226 return 'IsolateUnhandledException: exception while handling message: ' 227 return 'IsolateUnhandledException: exception while handling message: '
227 '${message} \n ' 228 '${message} \n '
228 '${source.toString().replaceAll("\n", "\n ")}\n' 229 '${source.toString().replaceAll("\n", "\n ")}\n'
229 'original stack trace:\n ' 230 'original stack trace:\n '
230 '${stackTrace.toString().replaceAll("\n","\n ")}'; 231 '${stackTrace.toString().replaceAll("\n","\n ")}';
231 } 232 }
232 } 233 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698