diff --git a/src/helpers.rs b/src/helpers.rs index 5ad0e7d6..3dc2de96 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -1,9 +1,7 @@ use std::fmt::Debug; use std::fs; use std::io; -use std::num::NonZeroUsize; use std::path::{Path, PathBuf}; -use std::thread::available_parallelism; use bytes::Bytes; use cargo_toml::Manifest; @@ -30,6 +28,9 @@ pub use ui_thread::UIThread; mod extracter; mod stream_readable; +mod jobserver_client; +pub use jobserver_client::*; + mod path_ext; pub use path_ext::*; @@ -46,22 +47,6 @@ pub async fn await_task(task: tokio::task::JoinHandle>) -> } } -pub fn create_jobserver_client() -> Result { - use jobserver::Client; - - // Safety: - // - // Client::from_env is unsafe because from_raw_fd is unsafe. - // It doesn't do anything that is actually unsafe, like - // dereferencing pointer. - if let Some(client) = unsafe { Client::from_env() } { - Ok(client) - } else { - let ncore = available_parallelism().map(NonZeroUsize::get).unwrap_or(1); - Ok(Client::new(ncore)?) - } -} - /// Load binstall metadata from the crate `Cargo.toml` at the provided path pub fn load_manifest_path>( manifest_path: P, diff --git a/src/helpers/jobserver_client.rs b/src/helpers/jobserver_client.rs new file mode 100644 index 00000000..740fcc38 --- /dev/null +++ b/src/helpers/jobserver_client.rs @@ -0,0 +1,20 @@ +use std::num::NonZeroUsize; +use std::thread::available_parallelism; + +use crate::BinstallError; + +pub fn create_jobserver_client() -> Result { + use jobserver::Client; + + // Safety: + // + // Client::from_env is unsafe because from_raw_fd is unsafe. + // It doesn't do anything that is actually unsafe, like + // dereferencing pointer. + if let Some(client) = unsafe { Client::from_env() } { + Ok(client) + } else { + let ncore = available_parallelism().map(NonZeroUsize::get).unwrap_or(1); + Ok(Client::new(ncore)?) + } +}