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
//! [`Mount`], a tree the operating system has attached, and the bindings that produce one.
//!
//! Each binding translates one filesystem interface onto the layer below
//! ([`Posix`](super::Posix) for interfaces that speak inodes and handles,
//! [`FileSystem`](super::FileSystem) for ones that speak paths) and exports a guard that mounts
//! on construction. The `mount` feature decides whether a build has a binding, the target OS
//! which one. The guards are gated, [`Mount`] is not, so a consumer can take a host-mounted
//! tree without compiling an interface it never mounts through.
//!
//! # Mounts nobody owns any more
//!
//! A guard covers every exit that runs a destructor; a signal runs none, leaving the mount
//! registered with nothing answering it. [`unmount_on_signal`] covers catchable signals and
//! [`reclaim_abandoned`] `SIGKILL`. Neither needs a binding: they concern mounts the host has,
//! and the run cleaning up after a killed process is usually not the one that mounted. Both
//! reuse the guards' own teardown, so a virtx mount comes down one way whether its owner is
//! alive or not. Unix only: a claim is a pid and a mode, and a sweep is `kill(pid, 0)`.
pub use reclaim_abandoned;
pub use r#;
pub use r#;
pub use r#;
pub use *;
pub use unmount_on_signal;
pub use mount_support;