Avoid signal-hook crate on windows (#4900)

This commit is contained in:
Michael Vines 2019-07-01 22:52:55 -07:00 committed by GitHub
parent 3615445a12
commit c1201e54fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View File

@ -30,7 +30,6 @@ ring = "0.13.2"
serde = "1.0.94"
serde_derive = "1.0.94"
serde_yaml = "0.8.9"
signal-hook = "0.1.9"
solana-client = { path = "../client", version = "0.17.0" }
solana-config-api = { path = "../programs/config_api", version = "0.17.0" }
solana-logger = { path = "../logger", version = "0.17.0" }
@ -39,6 +38,9 @@ tar = "0.4.26"
tempdir = "0.3.7"
url = "1.7.2"
[target."cfg(not(windows))".dependencies]
signal-hook = "0.1.9"
[target."cfg(windows)".dependencies]
winapi = "0.3.7"
winreg = "0.6"

View File

@ -760,14 +760,15 @@ pub fn run(
let mut child_option: Option<std::process::Child> = None;
let mut now = Instant::now();
let (signal_sender, signal_receiver) = mpsc::channel();
if !cfg!(windows) {
let (_signal_sender, signal_receiver) = mpsc::channel();
#[cfg(not(windows))]
{
use signal_hook::{iterator::Signals, SIGTERM};
let signals = Signals::new(&[SIGTERM]).unwrap();
std::thread::spawn(move || {
for sig in signals.forever() {
eprintln!("run: received signal {:?}", sig);
let _ = signal_sender.send(());
let _ = _signal_sender.send(());
}
});
}