Files
sdk/tests/lib/isolate/timer_multiple_isolates_test.dart
T
Martin Kustermann 627292bcc0 [vm] Remove --experimental-enable-isolate-groups-jit, only guard via --enable-isolate-groups
The JIT support has progressed and is no longer unstable. We'll
therefore remove the experimental flag and rely on the same
--enable-isolate-groups flag as in AOT mode.

Issue https://github.com/dart-lang/sdk/issues/36097

TEST=Existing test suite.

Change-Id: Iff0dd5b64d9b6ab91ad9ffc0ae445efc802d3908
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/207122
Auto-Submit: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2021-07-16 09:13:28 +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]);
}
}