Files
sdk/tests/lib/isolate/timer_multiple_isolates_test.dart
T
asiva a980fb1849 [Tests/NNBD] - Migrate initial set of isolate tests for NNBD.
Fix all warnings/errors when running with --enable-experiment=non-nullable flag

Change-Id: I7673aa34466273d623f7a429d96b0ccd6b612dae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/139980
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-03-19 20:07:58 +00:00

46 lines
1.0 KiB
Dart

// Copyright (c) 2017, 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.
// VMOptions=--enable-isolate-groups
// VMOptions=--no-enable-isolate-groups
library timer_multiple_isolates_test;
import 'dart:isolate';
import 'dart:async';
child(msg) {
var i = msg[0] as int;
var reponsePort = msg[1];
print("Starting child $i");
// Keep this isolate running to prevent its shutdown from touching the event
// handler.
new RawReceivePort();
// Try to get separate wakeups for each isolate.
new Timer(new Duration(milliseconds: 100 * (i + 1)), () {
print("Timer fired $i");
reponsePort.send(null);
});
}
main() {
var port;
var replies = 0;
var n = 3;
port = new RawReceivePort((reply) {
replies++;
print("Got reply $replies");
if (replies == n) {
print("Done");
port.close();
}
});
for (var i = 0; i < n; i++) {
Isolate.spawn(child, [i, port.sendPort]);
}
}