Wait for other executions on failure
This commit is contained in:
parent
b7c6a14571
commit
a155a1f7a8
2 changed files with 11 additions and 5 deletions
|
|
@ -16,6 +16,7 @@ pub fn run<F: Future>(future: F) -> F::Output {
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.block_on(future)
|
.block_on(future)
|
||||||
}
|
}
|
||||||
|
pub use tokio::join;
|
||||||
pub use tokio::try_join;
|
pub use tokio::try_join;
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ use super::runnable::Runnable;
|
||||||
use super::setup::Setup;
|
use super::setup::Setup;
|
||||||
use super::util::{AddableResource, InternalAddResult};
|
use super::util::{AddableResource, InternalAddResult};
|
||||||
use super::SymbolRunner;
|
use super::SymbolRunner;
|
||||||
use crate::async_utils::try_join;
|
use crate::async_utils::join;
|
||||||
use crate::loggers::{Logger, StoringLogger};
|
use crate::loggers::{Logger, StoringLogger};
|
||||||
use crate::resources::{FromArtifact, FromResource};
|
use crate::resources::{FromArtifact, FromResource};
|
||||||
use crate::symbols::Symbol;
|
use crate::symbols::Symbol;
|
||||||
|
|
@ -36,11 +36,16 @@ macro_rules! add_generic {
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
async fn add_generic(&self, ($($name,)*): ($($name,)*)) -> Result<(StoringLogger, ($($name::Artifact,)*), bool), (StoringLogger, Box<dyn Error>)>
|
async fn add_generic(&self, ($($name,)*): ($($name,)*)) -> Result<(StoringLogger, ($($name::Artifact,)*), bool), (StoringLogger, Box<dyn Error>)>
|
||||||
{
|
{
|
||||||
let x: Result<_, _> = try_join!($(self.add($name, false),)*);
|
let ($($name,)*) = join!($(self.add($name, false),)*);
|
||||||
let ($($name,)*) = x?;
|
|
||||||
let logger = StoringLogger::default();
|
let logger = StoringLogger::default();
|
||||||
$(logger.put($name.0.release());)*
|
let mut did_run_any = false;
|
||||||
Ok((logger, ($($name.1,)*), false $(|| $name.2)*))
|
$(
|
||||||
|
let (log, artifact, did_run) = $name?;
|
||||||
|
logger.put(log.release());
|
||||||
|
did_run_any = did_run_any || did_run;
|
||||||
|
let $name = artifact;
|
||||||
|
)*
|
||||||
|
Ok((logger, ($($name,)*), did_run_any))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue