| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import "dart:io"; | 5 import "dart:io"; |
| 6 import "dart:async"; |
| 6 | 7 |
| 7 void main(args) { | 8 void main(args) { |
| 8 var signal; | 9 var signal; |
| 10 // This process should die if it never receives a signal. |
| 11 var timeout = new Timer(new Duration(seconds: 25), () => exit(1)); |
| 9 switch (args[0]) { | 12 switch (args[0]) { |
| 10 case 'SIGHUP': signal = ProcessSignal.SIGHUP; break; | 13 case 'SIGHUP': signal = ProcessSignal.SIGHUP; break; |
| 11 case 'SIGINT': signal = ProcessSignal.SIGINT; break; | 14 case 'SIGINT': signal = ProcessSignal.SIGINT; break; |
| 12 case 'SIGTERM': signal = ProcessSignal.SIGTERM; break; | 15 case 'SIGTERM': signal = ProcessSignal.SIGTERM; break; |
| 13 case 'SIGUSR1': signal = ProcessSignal.SIGUSR1; break; | 16 case 'SIGUSR1': signal = ProcessSignal.SIGUSR1; break; |
| 14 case 'SIGUSR2': signal = ProcessSignal.SIGUSR2; break; | 17 case 'SIGUSR2': signal = ProcessSignal.SIGUSR2; break; |
| 15 case 'SIGWINCH': signal = ProcessSignal.SIGWINCH; break; | 18 case 'SIGWINCH': signal = ProcessSignal.SIGWINCH; break; |
| 16 } | 19 } |
| 17 signal.watch().first.then((s) { | 20 signal.watch().first.then((s) { |
| 18 if (signal != s) exit(1); | 21 if (signal != s) exit(1); |
| 19 if (signal.toString() != args[0]) exit(1); | 22 if (signal.toString() != args[0]) exit(1); |
| 20 print('got signal'); | 23 print('got signal'); |
| 24 timeout.cancel(); |
| 21 }); | 25 }); |
| 22 print("ready"); | 26 print("ready"); |
| 23 } | 27 } |
| 24 | |
| OLD | NEW |