diff --git a/backend/windmill-common/src/lib.rs b/backend/windmill-common/src/lib.rs index 1ddf8673af..279f9e37fc 100644 --- a/backend/windmill-common/src/lib.rs +++ b/backend/windmill-common/src/lib.rs @@ -76,7 +76,7 @@ pub async fn shutdown_signal( ) -> anyhow::Result<()> { use std::io; - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "macos"))] async fn terminate() -> io::Result<()> { use tokio::signal::unix::SignalKind; tokio::signal::unix::signal(SignalKind::terminate())? @@ -86,7 +86,7 @@ pub async fn shutdown_signal( Ok(()) } - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "macos"))] tokio::select! { _ = terminate() => {}, _ = tokio::signal::ctrl_c() => {}, @@ -95,7 +95,7 @@ pub async fn shutdown_signal( }, } - #[cfg(not(target_os = "linux"))] + #[cfg(not(any(target_os = "linux", target_os = "macos")))] tokio::select! { _ = tokio::signal::ctrl_c() => {}, _ = rx.recv() => { diff --git a/backend/windmill-worker/src/common.rs b/backend/windmill-worker/src/common.rs index 746ea9fe58..65c5ce4bfd 100644 --- a/backend/windmill-worker/src/common.rs +++ b/backend/windmill-worker/src/common.rs @@ -1,9 +1,9 @@ use async_recursion::async_recursion; use itertools::Itertools; -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "linux", target_os = "macos"))] use nix::sys::signal::{self, Signal}; -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "linux", target_os = "macos"))] use nix::unistd::Pid; use regex::Regex; @@ -27,7 +27,7 @@ use windmill_common::{ use anyhow::Result; use windmill_queue::CanceledBy; -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "linux", target_os = "macos"))] use std::os::unix::process::ExitStatusExt; use std::{ @@ -471,7 +471,7 @@ pub async fn handle_child( let write_logs_delay = Duration::from_millis(500); let pid = child.id(); - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "macos"))] if let Some(pid) = pid { //set the highest oom priority let mut file = File::create(format!("/proc/{pid}/oom_score_adj")).await?; @@ -619,7 +619,7 @@ pub async fn handle_child( if let Some(id) = child.id() { if *MAX_WAIT_FOR_SIGINT > 0 { - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "macos"))] signal::kill(Pid::from_raw(id as i32), Signal::SIGINT).unwrap(); for _ in 0..*MAX_WAIT_FOR_SIGINT { @@ -634,7 +634,7 @@ pub async fn handle_child( } } if sigterm { - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "macos"))] signal::kill(Pid::from_raw(id as i32), Signal::SIGTERM).unwrap(); for _ in 0..*MAX_WAIT_FOR_SIGTERM { @@ -772,7 +772,7 @@ pub async fn handle_child( } else if let Some(code) = status.code() { Err(error::Error::ExitStatus(code)) } else { - #[cfg(target_os = "linux")] + #[cfg(any(target_os = "linux", target_os = "macos"))] return Err(error::Error::ExecutionErr(format!( "process terminated by signal: {:#?}, stopped_signal: {:#?}, core_dumped: {}", status.signal(), @@ -780,7 +780,7 @@ pub async fn handle_child( status.core_dumped() ))); - #[cfg(not(target_os = "linux"))] + #[cfg(not(any(target_os = "linux", target_os = "macos")))] return Err(error::Error::ExecutionErr(String::from( "process terminated by signal", ))); diff --git a/backend/windmill-worker/src/worker.rs b/backend/windmill-worker/src/worker.rs index d9fe1a5579..60b4d7d779 100644 --- a/backend/windmill-worker/src/worker.rs +++ b/backend/windmill-worker/src/worker.rs @@ -51,7 +51,7 @@ use windmill_queue::{ use serde_json::{json, value::RawValue, Value}; -#[cfg(target_os = "linux")] +#[cfg(any(target_os = "linux", target_os = "macos"))] use tokio::fs::symlink; #[cfg(target_os = "windows")]