1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! Process lifecycle: graceful shutdown today, the dual-process
//! zero-downtime restart handoff (listener passing, readiness protocol,
//! admin restart channel) in later stages of the same feature.
// `pub`, not `pub(crate)` on all three of these - needed so `lib.rs`'s
// `#[doc(hidden)] pub mod __internal` can re-export them for this crate's
// own fixture binaries and integration tests (which are separate crates
// from this library, even though they share this package - see that
// module's doc comment).
pub
// Not re-exported via `__internal` like the four above -- only
// `handoff.rs` ever calls into this; no fixture or external test needs
// to reach it directly (see `supervisor`'s own doc comment).
pub
pub use wait_for_termination;
use Duration;
/// Configuration for [`crate::Application::with_graceful_shutdown`] -
/// **opt-in**: an `Application` that never calls that method keeps today's
/// exact behavior (a bare `axum::serve` that exits the instant Ctrl+C is
/// pressed). Flipping every existing app's shutdown behavior silently
/// would be exactly the kind of surprise a framework upgrade shouldn't
/// introduce.