mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 16:41:07 +00:00
Made SendPort a Capability.
Added tests. R=iposva@google.com, sgjesse@google.com Review URL: https://codereview.chromium.org//196983012 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34163 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
parent
843464d0ac
commit
63c7e14f44
|
@ -272,9 +272,10 @@ class Isolate {
|
|||
* a [SendPort] is delivered to its corresponding [ReceivePort]. There might be
|
||||
* many [SendPort]s for the same [ReceivePort].
|
||||
*
|
||||
* [SendPort]s can be transmitted to other isolates.
|
||||
* [SendPort]s can be transmitted to other isolates, and they preserve equality
|
||||
* when sent.
|
||||
*/
|
||||
abstract class SendPort {
|
||||
abstract class SendPort implements Capability {
|
||||
|
||||
/**
|
||||
* Sends an asynchronous [message] through this send port, to its
|
||||
|
|
|
@ -8,15 +8,25 @@ import "package:async_helper/async_helper.dart";
|
|||
|
||||
void main() {
|
||||
asyncStart();
|
||||
var c1 = new Capability();
|
||||
var c2 = new Capability();
|
||||
Expect.notEquals(c1, c2);
|
||||
|
||||
var receive = new RawReceivePort();
|
||||
receive.sendPort.send(c1);
|
||||
receive.handler = (c3) {
|
||||
Expect.equals(c3, c1);
|
||||
Expect.notEquals(c3, c2);
|
||||
asyncEnd();
|
||||
};
|
||||
test(c1, c2) {
|
||||
asyncStart();
|
||||
Expect.notEquals(c1, c2);
|
||||
var receive = new RawReceivePort();
|
||||
receive.sendPort.send(c1);
|
||||
receive.handler = (c3) {
|
||||
Expect.equals(c3, c1);
|
||||
Expect.notEquals(c3, c2);
|
||||
receive.close();
|
||||
asyncEnd();
|
||||
};
|
||||
}
|
||||
Capability c1 = new Capability();
|
||||
Capability c2 = new Capability();
|
||||
Capability c3 = (new RawReceivePort()..close()).sendPort;
|
||||
Capability c4 = (new RawReceivePort()..close()).sendPort;
|
||||
test(c1, c2);
|
||||
test(c3, c4);
|
||||
test(c1, c3);
|
||||
asyncEnd();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue