diff --git a/src/helpers.rs b/src/helpers.rs index 3e714c45..5ad0e7d6 100644 --- a/src/helpers.rs +++ b/src/helpers.rs @@ -39,9 +39,11 @@ pub use tls_version::TLSVersion; mod crate_name; pub use crate_name::CrateName; -pub async fn await_task(task: tokio::task::JoinHandle) -> miette::Result { - task.await - .map_err(|join_err| miette::miette!("Task failed to join: {}", join_err)) +pub async fn await_task(task: tokio::task::JoinHandle>) -> miette::Result { + match task.await { + Ok(res) => res, + Err(join_err) => Err(miette::miette!("Task failed to join: {}", join_err)), + } } pub fn create_jobserver_client() -> Result { diff --git a/src/main.rs b/src/main.rs index ae327319..62071031 100644 --- a/src/main.rs +++ b/src/main.rs @@ -279,7 +279,7 @@ async fn entry() -> Result<()> { // Confirm let mut resolutions = Vec::with_capacity(tasks.len()); for task in tasks { - resolutions.push(await_task(task).await??); + resolutions.push(await_task(task).await?); } uithread.confirm().await?; @@ -308,7 +308,7 @@ async fn entry() -> Result<()> { let jobserver_client = jobserver_client.clone(); tokio::spawn(async move { - let resolution = await_task(task).await??; + let resolution = await_task(task).await?; install(resolution, opts, temp_dir_path, target, jobserver_client).await }) }) @@ -316,7 +316,7 @@ async fn entry() -> Result<()> { }; for task in tasks { - await_task(task).await??; + await_task(task).await?; } if !opts.no_cleanup {