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
58
59
//! Owns the transition from registry membership to terminal cleanup.
//!
//! Remove, cancel, actor completion, and shutdown can all request this transition.
//! They compete under the state lock.
//! One winner changes the entry to removing and takes its actor handle.
//! The label remains reserved during the join.
//!
//! ```text
//! command or completion ──► claim ────────────────────► actor join ───► terminal commit
//! shutdown ───────────────► claim remaining entries ──► actor joins ──► terminal commit
//! ```
//!
//! `commands` defines remove and cancel decisions. `join` waits for actors outside the listener and
//! handles the shared shutdown deadline. `terminal` removes both indexes, reports the outcome,
//! and completes logical waiters. `pending` tracks every claimed removal owner for shutdown.
//! Force-aborted physical ownership continues in `scheduler` until it can enter deferred cleanup.
use crate::;
pub use PendingJoins;
pub use TerminalFinalizer;
/// Terminal join state passed to registry cleanup.
pub
/// Values required to commit one actor's terminal cleanup.
pub