FEXServer: Fixes squashfs/erofs with newer fuse releases

Newer fuse releases changed how they are waiting on child processes to
exit. Setting the signal action to SIG_IGN would cause
erofsfuse/squashfuse to inherit the ignored action and cause their
internal `wait4` syscalls to fail with ECHLD.

Set the action back to default inside the FEXServer because our original
reasoning for setting the ignoring is no longer valid. FEXInterpreter
still ignores SIGCHLD while launching FEXServer.

Maybe fixes the muvm thing people have been complaining about.

Also fixes accidental comma delimiter usage.
This commit is contained in:
Ryan Houdek committed 2025-05-01 13:47:46 -07:00
1 parent 4f2d2e646e
commit cdbcdfe397
2 files changed
+5 -4

No files matched your search

+3 -3
View File
@@ -74,9 +74,9 @@ void SetupSignals() {
// Ignore SIGPIPE, we will be checking for pipe closure which could send this signal
signal(SIGPIPE, SIG_IGN);
// SIGCHLD if squashfuse exits early.
// Ignore it for now
signal(SIGCHLD, SIG_IGN);
// Reset SIGCHLD which is likely SIG_IGN if FEXInterpreter started the server.
// We now wait for child processes with waitpid, newer libfuse also requires SIGCHLD to not be ignored by child processes.
signal(SIGCHLD, SIG_DFL);
}
/**