SIGCHLD=SIG_IGN at main() was auto-reaping all children in the kernel, which broke tokio::process::Command::wait() — every tool that spawned a subprocess (bash, mcp clients) was getting ECHILD because tokio couldn't waitpid() on a child the kernel had already reaped. Replace with a SIGCHLD signal handler task that reaps only PIDs listed in channels_dir() (via waitpid(pid, WNOHANG) — ECHILD on non-child is a harmless no-op). Tokio-spawned children aren't in PID files, so tokio's own per-child wait paths are untouched. Co-Authored-By: Proof of Concept <poc@bcachefs.org> |
||
|---|---|---|
| .. | ||
| amygdala.rs | ||
| chat.rs | ||
| compare.rs | ||
| context.rs | ||
| learn.rs | ||
| mod.rs | ||
| scroll_pane.rs | ||
| selectable.rs | ||
| subconscious.rs | ||
| thalamus.rs | ||
| unconscious.rs | ||
| widgets.rs | ||