dart-sdk/tests/isolate/non_fatal_exception_in_timer_callback_test.dart
Ryan Macnak 60a7160273 Reapply "[vm] Prevent non-fatal errors from causing timers to be dropped."
Fix Linux event handler to re-arm the timer_fd after handling a wakeup.

R=zra@google.com

Review-Url: https://codereview.chromium.org/2996243003 .
2017-08-18 13:38:08 -07:00

28 lines
803 B
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.
import 'dart:async';
import 'dart:isolate';
import 'dart:io';
main() async {
Isolate.current.setErrorsFatal(false);
new Timer(const Duration(milliseconds: 10), () {
print("Timer 1");
// This unhandled exception should not prevent the second timer from firing.
throw "Oh no!";
});
new Timer.periodic(const Duration(milliseconds: 20), (_) {
print("Timer 2");
exit(0);
});
sleep(const Duration(milliseconds: 30)); //# sleep: ok
// With sleep: both timers are due at the same wakeup event.
// Without sleep: the timers get separate wakeup events.
}