macro_rules! eprintln_lossy {
($($arg:tt)*) => { ... };
}Expand description
eprintln! that can’t panic. srv’s stderr is a pipe the launcher reads, so
once the launcher is gone a write fails with EPIPE (Rust ignores SIGPIPE),
and eprintln! panics on a failed write. On the paths that must run when
the launcher has died, the parent and stdin watchers, that panic killed
the watcher thread before it could shut srv down, which left srv running
with no launcher, holding srv.lock, so the app could not be opened again.