How to compile a project that's using tokio::signal::unix on Windows? Whenever I try to compile a project with tokio::signal::unix, it will show this error.
58 | use tokio::signal::unix::SignalKind; | ^^^^ could not find `unix` in `signal`
Or is there a better way to handle signal with no regard to the operating system?
Is there's any way to make the code base useable regardless of the platform?
OS signal are specific to each operating system, so you cannot use Unix signals on Windows. The only cross platform signal
tokio supports is ctrl-c but if you want to support both platforms then you can use
cfg to select the platform specific import
#[cfg(unix)] use tokio::signal::unix; #[cfg(windows)] use tokio::signal::windows;
and then in your code, use the library for that platform
#[cfg(unix)] println!("On Unix"); // Only runs on Unix/Linux #[cfg(windows)] println!("On Windows"); // Only runs on Windows