Commit f27b0611 authored by John McCutchan's avatar John McCutchan Committed by GitHub

Handle SIGUSR1/SIGUSR2 spamming gracefully (#7069)

parent ab0fdd72
...@@ -91,14 +91,25 @@ abstract class ResidentRunner { ...@@ -91,14 +91,25 @@ abstract class ResidentRunner {
return; return;
if (!supportsRestart) if (!supportsRestart)
return; return;
ProcessSignal.SIGUSR1.watch().listen((ProcessSignal signal) async { ProcessSignal.SIGUSR1.watch().listen(_handleSignal);
printStatus('Caught SIGUSR1'); ProcessSignal.SIGUSR2.watch().listen(_handleSignal);
await restart(fullRestart: false); }
});
ProcessSignal.SIGUSR2.watch().listen((ProcessSignal signal) async { bool _processingSignal = false;
printStatus('Caught SIGUSR2'); Future<Null> _handleSignal(ProcessSignal signal) async {
await restart(fullRestart: true); if (_processingSignal) {
}); printTrace('Ignoring signal: "$signal" because we are busy.');
return;
}
_processingSignal = true;
final bool fullRestart = signal == ProcessSignal.SIGUSR2;
try {
await restart(fullRestart: fullRestart);
} finally {
_processingSignal = false;
}
} }
Future<Null> startEchoingDeviceLog(ApplicationPackage app) async { Future<Null> startEchoingDeviceLog(ApplicationPackage app) async {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment