mirror of
https://github.com/cargo-bins/cargo-binstall.git
synced 2025-05-05 03:30:03 +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 gh_crate_meta::*;
|
||||||
pub use log::debug;
|
pub use log::debug;
|
||||||
pub use quickinstall::*;
|
pub use quickinstall::*;
|
||||||
use tokio::task::JoinHandle;
|
|
||||||
|
|
||||||
use crate::{BinstallError, PkgFmt, PkgMeta};
|
use crate::{AutoAbortJoinHandle, BinstallError, PkgFmt, PkgMeta};
|
||||||
|
|
||||||
mod gh_crate_meta;
|
mod gh_crate_meta;
|
||||||
mod quickinstall;
|
mod quickinstall;
|
||||||
|
@ -62,10 +61,12 @@ impl MultiFetcher {
|
||||||
.fetchers
|
.fetchers
|
||||||
.iter()
|
.iter()
|
||||||
.cloned()
|
.cloned()
|
||||||
.map(|fetcher| (
|
.map(|fetcher| {
|
||||||
fetcher.clone(),
|
(
|
||||||
AutoAbortJoinHandle(tokio::spawn(async move { fetcher.check().await })),
|
fetcher.clone(),
|
||||||
))
|
AutoAbortJoinHandle(tokio::spawn(async move { fetcher.check().await })),
|
||||||
|
)
|
||||||
|
})
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
for (fetcher, mut handle) in handles {
|
for (fetcher, mut handle) in handles {
|
||||||
|
@ -92,12 +93,3 @@ impl MultiFetcher {
|
||||||
None
|
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
Add a link
Reference in a new issue