Message ID | 20210427063217.60753-1-someguy@effective-light.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | linux-user: make process_pending_signals thread-safe | expand |
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;
Use pthread_sigmask instead of sigprocmask inside process_pending_signals to ensure that race conditions aren't possible. Signed-off-by: Hamza Mahfooz <someguy@effective-light.com> --- linux-user/signal.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)