index : static-web-server.git

ascending towards madness

author Jose Quintana <joseluisquintana20@gmail.com> 2021-10-29 11:31:35.0 +00:00:00
committer Jose Quintana <joseluisquintana20@gmail.com> 2021-10-29 11:31:35.0 +00:00:00
commit
1457915cda8da85c2f4b46f7585c25135fdeeece [patch]
tree
f55471811ea5e2a3f05e171f5bfd697839f640e2
parent
4a91844cc671b55b40151ce2f639037a8cb90902
download
1457915cda8da85c2f4b46f7585c25135fdeeece.tar.gz

fix: disable windows signal handling for now



Diff

 Cargo.toml     |  6 ++++--
 src/signals.rs | 20 +++++++++++++++++---
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index d49f90d..5dd381b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -49,12 +49,14 @@ tokio-rustls = { version = "0.22" }
tokio-util = { version = "0.6", features = ["io"] }
tracing = "0.1"
tracing-subscriber = "0.2"
signal-hook = { version = "0.3.4", features = ["extended-siginfo"] }
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"], default-features = false }

[target.'cfg(all(target_env = "musl", target_pointer_width = "64"))'.dependencies.jemallocator]
version = "0.3"

[target.'cfg(not(windows))'.dependencies]
signal-hook = { version = "0.3.4", features = ["extended-siginfo"] }
signal-hook-tokio = { version = "0.3", features = ["futures-v0_3"], default-features = false }

[dev-dependencies]
bytes = "1.0"

diff --git a/src/signals.rs b/src/signals.rs
index 0fe03d0..2cbc9f8 100644
--- a/src/signals.rs
+++ b/src/signals.rs
@@ -1,14 +1,24 @@
use futures_util::stream::StreamExt;
use signal_hook::consts::signal::*;
use signal_hook_tokio::Signals;
#[cfg(not(windows))]
use {futures_util::stream::StreamExt, signal_hook::consts::signal::*, signal_hook_tokio::Signals};

#[cfg(windows)]
type Signals = futures_util::stream::Empty<()>;

use crate::Result;

#[cfg(not(windows))]
/// It creates a common list of signals stream for `SIGTERM`, `SIGINT` and `SIGQUIT` to be observed.
pub fn create_signals() -> Result<Signals> {
    Ok(Signals::new(&[SIGHUP, SIGTERM, SIGINT, SIGQUIT])?)
}

#[cfg(windows)]
// No signal handling available on Windows for now
pub fn create_signals() -> Result<Signals> {
    Ok(futures_util::stream::empty())
}

#[cfg(not(windows))]
/// It waits for a specific type of incoming signals.
pub async fn wait_for_signals(signals: Signals) {
    let mut signals = signals.fuse();
@@ -26,3 +36,7 @@ pub async fn wait_for_signals(signals: Signals) {
        }
    }
}

#[cfg(windows)]
// No signal handling available on Windows for now
pub async fn wait_for_signals(signals: Signals) {}