//! Process-wide signal handling for the dispatcher.
//!
//! On SIGINT or SIGTERM we forward the signal to the running extension (if
//! any) and mark the run as interrupted so the dispatcher writes an
//! `interrupted` audit entry instead of `finish`. The shared
//! [`qli_ext::DispatchSignals`] handle is what lets the handler thread and
//! the dispatcher communicate without a global.
use Arc;
use DispatchSignals;
/// Install a Ctrl+C / SIGTERM handler that forwards to any running child
/// via `signals` and flags the run as interrupted. The same `Arc` is passed
/// into [`qli_ext::DispatchOptions`] so the dispatcher can read the flag
/// after `wait`.