blob: 2a4d0c72691f92324158324b7890b0eb16b12cd7 [file] [log] [blame]
/*
* Copyright (c) 2016, the Dart project authors. Please see the AUTHORS
* file for details. All rights reserved. Use of this source code is governed
* by a BSD-style license that can be found in the LICENSE file.
*/
/**
* @assertion Isolate current
* Return an Isolate object representing the current isolate.
* The current isolate for code using current is the isolate running the code.
* The isolate object provides the capabilities required to inspect, pause
* or kill the isolate, and allows granting these capabilities to others.
* It is possible to pause the current isolate, but doing so without first
* passing the ability to resume it again to another isolate, is a sure way
* to hang your program.
*
* @description Check that current property is not null for new isolate
*
* @author a.semenov@unipro.ru
*/
import "dart:isolate";
import "../../../Utils/expect.dart";
entryPoint(message){
Expect.isNotNull(Isolate.current);
}
test() async {
ReceivePort onExit = new ReceivePort();
ReceivePort onError = new ReceivePort();
Isolate isolate = await Isolate.spawn(
entryPoint,
null, // message
onExit:onExit.sendPort,
onError:onError.sendPort,
errorsAreFatal:true
);
await onExit.first;
onError.close();
List errors = await onError.toList();
Expect.isTrue(errors.isEmpty, "Caught unexpected errors: $errors");
asyncEnd();
}
main() {
asyncStart();
test();
}