From 829976d35e15d838cd0cf42bdbf65bcb3a790501 Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Wed, 1 Feb 2017 21:06:19 -0800 Subject: [PATCH] Work around for dart-lang/sdk#28603 (#7805) --- .../lib/src/resident_runner.dart | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart index 9d940ea3b2b..cea624cd066 100644 --- a/packages/flutter_tools/lib/src/resident_runner.dart +++ b/packages/flutter_tools/lib/src/resident_runner.dart @@ -12,6 +12,7 @@ import 'application_package.dart'; import 'base/file_system.dart'; import 'base/io.dart'; +import 'base/os.dart'; import 'asset.dart'; @@ -111,24 +112,21 @@ abstract class ResidentRunner { void registerSignalHandlers() { assert(stayResident); - ProcessSignal.SIGINT.watch().listen((ProcessSignal signal) async { - _resetTerminal(); - await cleanupAfterSignal(); - exit(0); - }); - ProcessSignal.SIGTERM.watch().listen((ProcessSignal signal) async { - _resetTerminal(); - await cleanupAfterSignal(); - exit(0); - }); - if (!supportsServiceProtocol) - return; - if (!supportsRestart) + ProcessSignal.SIGINT.watch().listen(_cleanUpAndExit); + if (!os.isWindows) // TODO(goderbauer): enable on Windows when https://github.com/dart-lang/sdk/issues/28603 is fixed + ProcessSignal.SIGTERM.watch().listen(_cleanUpAndExit); + if (!supportsServiceProtocol || !supportsRestart) return; ProcessSignal.SIGUSR1.watch().listen(_handleSignal); ProcessSignal.SIGUSR2.watch().listen(_handleSignal); } + Future _cleanUpAndExit(ProcessSignal signal) async { + _resetTerminal(); + await cleanupAfterSignal(); + exit(0); + } + bool _processingSignal = false; Future _handleSignal(ProcessSignal signal) async { if (_processingSignal) {