From 67ca36a0b55d1b04ca078faecc7b4a6a52706ed6 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Tue, 19 Jul 2022 12:15:00 +1000 Subject: [PATCH] Fix `jobserver_client`: Create it as early as possible Signed-off-by: Jiahao XU --- src/main.rs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index d2cf94b6..cea320ce 100644 --- a/src/main.rs +++ b/src/main.rs @@ -171,10 +171,16 @@ impl Termination for MainExit { } fn main() -> MainExit { + // Create jobserver client + let jobserver_client = match create_jobserver_client() { + Ok(jobserver_client) => jobserver_client, + Err(binstall_err) => return MainExit::Error(binstall_err), + }; + let start = Instant::now(); let rt = Runtime::new().unwrap(); - let handle = rt.spawn(entry()); + let handle = rt.spawn(entry(jobserver_client)); let result = rt.block_on(handle); drop(rt); @@ -190,7 +196,7 @@ fn main() -> MainExit { }) } -async fn entry() -> Result<()> { +async fn entry(jobserver_client: jobserver::Client) -> Result<()> { // Filter extraneous arg when invoked by cargo // `cargo run -- --help` gives ["target/debug/cargo-binstall", "--help"] // `cargo binstall --help` gives ["/home/ryan/.cargo/bin/cargo-binstall", "binstall", "--help"] @@ -209,9 +215,6 @@ async fn entry() -> Result<()> { let crate_names = take(&mut opts.crate_names); let opts = Arc::new(opts); - // Create jobserver client - let jobserver_client = create_jobserver_client()?; - // Initialize reqwest client let client = create_reqwest_client(opts.secure, opts.min_tls_version.map(|v| v.into()))?;