mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-04-21 13:08:42 +00:00
Refactor: Mv AutoAbortJoinHandle
into helpers
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
parent
6367bfc1e3
commit
12931fc024
2 changed files with 16 additions and 15 deletions
|
@ -4,9 +4,8 @@ use std::sync::Arc;
|
|||
pub use gh_crate_meta::*;
|
||||
pub use log::debug;
|
||||
pub use quickinstall::*;
|
||||
use tokio::task::JoinHandle;
|
||||
|
||||
use crate::{BinstallError, PkgFmt, PkgMeta};
|
||||
use crate::{AutoAbortJoinHandle, BinstallError, PkgFmt, PkgMeta};
|
||||
|
||||
mod gh_crate_meta;
|
||||
mod quickinstall;
|
||||
|
@ -62,10 +61,12 @@ impl MultiFetcher {
|
|||
.fetchers
|
||||
.iter()
|
||||
.cloned()
|
||||
.map(|fetcher| (
|
||||
fetcher.clone(),
|
||||
AutoAbortJoinHandle(tokio::spawn(async move { fetcher.check().await })),
|
||||
))
|
||||
.map(|fetcher| {
|
||||
(
|
||||
fetcher.clone(),
|
||||
AutoAbortJoinHandle(tokio::spawn(async move { fetcher.check().await })),
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
|
||||
for (fetcher, mut handle) in handles {
|
||||
|
@ -92,12 +93,3 @@ impl MultiFetcher {
|
|||
None
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
struct AutoAbortJoinHandle(JoinHandle<Result<bool, BinstallError>>);
|
||||
|
||||
impl Drop for AutoAbortJoinHandle {
|
||||
fn drop(&mut self) {
|
||||
self.0.abort();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -300,3 +300,12 @@ impl AsyncFileWriter {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct AutoAbortJoinHandle<T>(pub task::JoinHandle<T>);
|
||||
|
||||
impl<T> Drop for AutoAbortJoinHandle<T> {
|
||||
fn drop(&mut self) {
|
||||
self.0.abort();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue