28 lines
955 B
Rust
28 lines
955 B
Rust
// src/macros.rs
|
|
#[macro_export]
|
|
macro_rules! check_shutdown {
|
|
($shutdown_flag:expr) => {
|
|
if $shutdown_flag.load(std::sync::atomic::Ordering::SeqCst) {
|
|
logger::log_warn("Shutdown detected, stopping processes").await;
|
|
return Ok(());
|
|
}
|
|
};
|
|
}
|
|
|
|
/// Mark incomplete state on shutdown
|
|
/// Usage: mark_incomplete_on_shutdown!(&manager, "step_name", content_ref, DataStage::Data, &shutdown_flag)?;
|
|
#[macro_export]
|
|
macro_rules! mark_incomplete_on_shutdown {
|
|
($manager:expr, $step_name:expr, $content_ref:expr, $data_stage:expr, $shutdown_flag:expr) => {
|
|
if $shutdown_flag.load(std::sync::atomic::Ordering::SeqCst) {
|
|
$manager
|
|
.mark_incomplete(
|
|
$step_name.to_string(),
|
|
$content_ref,
|
|
$data_stage,
|
|
"Incomplete due to shutdown".to_string(),
|
|
)
|
|
.await?;
|
|
}
|
|
};
|
|
} |