
// @dart = 2.9
library async_cancellingisolate;

import 'dart:async';
import 'package:expect/minitest.dart';

main(message, replyTo) {
  var command = message.first;
  expect(command, 'START');
  var shot = false;
  var oneshot;
  var periodic;
  periodic = new Timer.periodic(const Duration(milliseconds: 10), (timer) {
    expect(shot, isFalse);
    shot = true;
    expect(timer, same(periodic));
    periodic.cancel();
    oneshot.cancel();
    // Wait some more time to be sure callbacks won't be invoked any
    // more.
    new Timer(const Duration(milliseconds: 50), () {
      replyTo.send('DONE');
    });
  });
  // We launch the oneshot timer after the periodic timer. Otherwise a
  // (very long) context switch could make this test flaky: assume the
  // oneshot timer is created first and then there is a 30ms context switch.
  // when the periodic timer is scheduled it would execute after the oneshot.
  oneshot = new Timer(const Duration(milliseconds: 30), () {
    fail('Should never be invoked');
  });
}
