mirror of
https://github.com/LizardByte/Sunshine.git
synced 2025-08-10 00:52:16 +00:00
fix(process): avoid leaking zombies and fds in detached processes (#3379)
This commit is contained in:
@@ -269,6 +269,16 @@ namespace proc {
|
||||
|
||||
int
|
||||
proc_t::running() {
|
||||
#ifndef _WIN32
|
||||
// On POSIX OSes, we must periodically wait for our children to avoid
|
||||
// them becoming zombies. This must be synchronized carefully with
|
||||
// calls to bp::wait() and platf::process_group_running() which both
|
||||
// invoke waitpid() under the hood.
|
||||
auto reaper = util::fail_guard([]() {
|
||||
while (waitpid(-1, nullptr, WNOHANG) > 0);
|
||||
});
|
||||
#endif
|
||||
|
||||
if (placebo) {
|
||||
return _app_id;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user