cat_gateway/service/utilities/health/
live.rs1use std::sync::atomic::{AtomicBool, AtomicU64, Ordering};
4
5static IS_LIVE: AtomicBool = AtomicBool::new(true);
9
10static LIVE_PANIC_COUNTER: AtomicU64 = AtomicU64::new(0);
12
13pub(crate) fn is_live() -> bool {
15 IS_LIVE.load(Ordering::Acquire)
16}
17
18pub(crate) fn set_not_live() {
20 IS_LIVE.store(false, Ordering::Release);
21}
22
23pub(crate) fn get_live_counter() -> u64 {
25 LIVE_PANIC_COUNTER.load(Ordering::SeqCst)
26}
27
28pub(crate) fn inc_live_counter() {
30 LIVE_PANIC_COUNTER.fetch_add(1, Ordering::SeqCst);
31}
32
33pub(crate) fn live_counter_reset() -> u64 {
35 LIVE_PANIC_COUNTER.swap(0, Ordering::SeqCst)
36}