Skip to main content

soma_mcp_client/
process.rs

1//! Process hygiene for stdio upstreams.
2
3pub mod guard;
4pub mod stderr;
5pub mod stdio;
6pub mod windows;
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9pub enum ChildCleanupPolicy {
10    KillProcessGroup,
11    KillWindowsJob,
12}
13
14#[cfg(unix)]
15#[must_use]
16pub fn default_cleanup_policy() -> ChildCleanupPolicy {
17    ChildCleanupPolicy::KillProcessGroup
18}
19
20#[cfg(windows)]
21#[must_use]
22pub fn default_cleanup_policy() -> ChildCleanupPolicy {
23    ChildCleanupPolicy::KillWindowsJob
24}
25
26#[cfg(not(any(unix, windows)))]
27#[must_use]
28pub fn default_cleanup_policy() -> ChildCleanupPolicy {
29    ChildCleanupPolicy::KillProcessGroup
30}
31
32#[cfg(test)]
33#[path = "process_tests.rs"]
34mod tests;