Use pthread_sigmask instead of sigprocmask inside process_pending_signals to ensure that race conditions aren't possible.
Signed-off-by: Hamza Mahfooz <some...@effective-light.com> --- linux-user/signal.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/linux-user/signal.c b/linux-user/signal.c index 7eecec46c4..81ff753c01 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -1005,9 +1005,8 @@ void process_pending_signals(CPUArchState *cpu_env) sigset_t *blocked_set; while (qatomic_read(&ts->signal_pending)) { - /* FIXME: This is not threadsafe. */ sigfillset(&set); - sigprocmask(SIG_SETMASK, &set, 0); + pthread_sigmask(SIG_SETMASK, &set, 0); restart_scan: sig = ts->sync_signal.pending; -- 2.31.1