diff --git a/app/src/sys/unix/process.c b/app/src/sys/unix/process.c index 54a1bb80..cb82f3a9 100644 --- a/app/src/sys/unix/process.c +++ b/app/src/sys/unix/process.c @@ -119,6 +119,13 @@ sc_process_execute_p(const char *const argv[], sc_pid *pid, unsigned flags, close(internal[0]); enum sc_process_result err; + + // Somehow SDL masks many signals - undo them for other processes + // https://github.com/libsdl-org/SDL/blob/release-2.0.18/src/thread/pthread/SDL_systhread.c#L167 + sigset_t mask; + sigemptyset(&mask); + sigprocmask(SIG_SETMASK, &mask, NULL); + if (fcntl(internal[1], F_SETFD, FD_CLOEXEC) == 0) { execvp(argv[0], (char *const *) argv); perror("exec");