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

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

Issue 11824053: Implement port equality on SendPortSync (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 80 char fix Created 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « sdk/lib/html/dartium/html_dartium.dart ('k') | tests/html/js_interop_2_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 part of dart.isolate; 5 part of dart.isolate;
6 6
7 class IsolateSpawnException implements Exception { 7 class IsolateSpawnException implements Exception {
8 const IsolateSpawnException(String this._s); 8 const IsolateSpawnException(String this._s);
9 String toString() => "IsolateSpawnException: '$_s'"; 9 String toString() => "IsolateSpawnException: '$_s'";
10 final String _s; 10 final String _s;
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 void close(); 132 void close();
133 133
134 /** 134 /**
135 * Creates a new send port that sends to this receive port. It is legal to 135 * Creates a new send port that sends to this receive port. It is legal to
136 * create several [SendPort]s from the same [ReceivePort]. 136 * create several [SendPort]s from the same [ReceivePort].
137 */ 137 */
138 SendPort toSendPort(); 138 SendPort toSendPort();
139 139
140 } 140 }
141 141
142 // TODO(kasperl): Document this. 142 /**
143 * [SendPortSync]s are created from [ReceivePortSync]s. Any message sent through
144 * a [SendPortSync] is delivered to its respective [ReceivePortSync]. There
145 * might be many [SendPortSync]s for the same [ReceivePortSync].
146 *
147 * [SendPortSync]s can be transmitted to other isolates.
148 */
143 abstract class SendPortSync { 149 abstract class SendPortSync {
144 150 /**
151 * Sends a synchronous message to this send port and returns the result.
152 */
145 callSync(var message); 153 callSync(var message);
146 154
155 /**
156 * Tests whether [other] is a [SendPortSync] pointing to the same
157 * [ReceivePortSync] as this one.
158 */
159 bool operator==(var other);
160
161 /**
162 * Returns an immutable hash code for this send port that is
163 * consistent with the == operator.
164 */
165 int get hashCode;
147 } 166 }
148 167
149 // The VM doesn't support accessing external globals in the same library. We 168 // The VM doesn't support accessing external globals in the same library. We
150 // therefore create this wrapper class. 169 // therefore create this wrapper class.
151 // TODO(6997): Don't go through static class for external variables. 170 // TODO(6997): Don't go through static class for external variables.
152 abstract class _Isolate { 171 abstract class _Isolate {
153 external static ReceivePort get port; 172 external static ReceivePort get port;
154 external static SendPort spawnFunction(void topLevelFunction(), 173 external static SendPort spawnFunction(void topLevelFunction(),
155 [bool UnhandledExceptionCallback(IsolateUnhandledException e)]); 174 [bool UnhandledExceptionCallback(IsolateUnhandledException e)]);
156 external static SendPort spawnUri(String uri); 175 external static SendPort spawnUri(String uri);
(...skipping 17 matching lines...) Expand all
174 const IsolateUnhandledException(this.message, this.source, this.stackTrace); 193 const IsolateUnhandledException(this.message, this.source, this.stackTrace);
175 194
176 String toString() { 195 String toString() {
177 return 'IsolateUnhandledException: exception while handling message: ' 196 return 'IsolateUnhandledException: exception while handling message: '
178 '${message} \n ' 197 '${message} \n '
179 '${source.toString().replaceAll("\n", "\n ")}\n' 198 '${source.toString().replaceAll("\n", "\n ")}\n'
180 'original stack trace:\n ' 199 'original stack trace:\n '
181 '${stackTrace.toString().replaceAll("\n","\n ")}'; 200 '${stackTrace.toString().replaceAll("\n","\n ")}';
182 } 201 }
183 } 202 }
OLDNEW
« no previous file with comments | « sdk/lib/html/dartium/html_dartium.dart ('k') | tests/html/js_interop_2_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698