From 291d1b6491992cdad2bb94c9b8ef9b4b9395d325 Mon Sep 17 00:00:00 2001
From: Konstantin Tomashevich <[EMAIL REDACTED]>
Date: Wed, 18 Mar 2026 21:44:18 +0300
Subject: [PATCH] SDL_systhread.c: Remove SIGCHLD from blocked signal mask.
When SIGCHLD is blocked, some executables (for example CMake) do not exit properly when executed using `SDL_CreateProcess` from any SDL thread (not main thread). `SDL_CreateProcessWithProperties` docs say that `SIGCHILD` should not be ignored or handled, therefore blocking it during thread creation is a likely reason for the bug. Should fix #15210.
Signed-off-by: Konstantin Tomashevich <konstantin.tomashevich@gmail.com>
---
src/thread/pthread/SDL_systhread.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/thread/pthread/SDL_systhread.c b/src/thread/pthread/SDL_systhread.c
index 37001982c7907..fd16b2d8eb9ed 100644
--- a/src/thread/pthread/SDL_systhread.c
+++ b/src/thread/pthread/SDL_systhread.c
@@ -60,7 +60,7 @@
#ifdef HAVE_SIGNAL_H
// List of signals to mask in the subthreads
static const int sig_list[] = {
- SIGHUP, SIGINT, SIGQUIT, SIGPIPE, SIGALRM, SIGTERM, SIGCHLD, SIGWINCH,
+ SIGHUP, SIGINT, SIGQUIT, SIGPIPE, SIGALRM, SIGTERM, SIGWINCH,
SIGVTALRM, SIGPROF, 0
};
#endif