about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--sysdeps/mach/hurd/sigaction.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sysdeps/mach/hurd/sigaction.c b/sysdeps/mach/hurd/sigaction.c
index 91de02cd17..957068b168 100644
--- a/sysdeps/mach/hurd/sigaction.c
+++ b/sysdeps/mach/hurd/sigaction.c
@@ -52,7 +52,8 @@ DEFUN(__sigaction, (sig, act, oact),
   if (act != NULL)
     ss->actions[sig] = a;
 
-  if (act != NULL && sig == SIGCHLD)
+  if (act != NULL && sig == SIGCHLD &&
+      (a.sa_flags & SA_NOCLDSTOP) != (old.sa_flags & SA_NOCLDSTOP))
     {
       ss->critical_section = 1;
       __spin_unlock (&ss->lock);