summaryrefslogtreecommitdiff
path: root/sysdeps/mach/hurd/sigprocmask.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2012-02-21 02:34:35 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2012-02-21 02:34:35 +0100
commit2ec583b0e9d55120e2538c2b8bacb292b6d3dada (patch)
tree4ca3f18e216c181ac452ff64652f1b999e874c7c /sysdeps/mach/hurd/sigprocmask.c
parentc2fb0b60d1a90e8aeab2e2a90ab818bea30c617f (diff)
Global signal dispositions.
Although they should not change the default behaviors of signals for cthread programs, these patches add new functions which can be used by libpthread to enable POSIX-conforming behavior of signals on a per-thread basis. e407ae3 Hurd signals: implement global signal dispositions 38eb4b3 Hurd signals: provide a sigstate destructor 344dfd6 Hurd signals: fix sigwait() for global signals fb055f2 Hurd signals: fix global untraced signals.
Diffstat (limited to 'sysdeps/mach/hurd/sigprocmask.c')
-rw-r--r--sysdeps/mach/hurd/sigprocmask.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sysdeps/mach/hurd/sigprocmask.c b/sysdeps/mach/hurd/sigprocmask.c
index cbb5ecce2e..b12dc1986c 100644
--- a/sysdeps/mach/hurd/sigprocmask.c
+++ b/sysdeps/mach/hurd/sigprocmask.c
@@ -1,4 +1,5 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,2002 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,2002,2011
+ Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -40,7 +41,7 @@ __sigprocmask (how, set, oset)
ss = _hurd_self_sigstate ();
- __spin_lock (&ss->lock);
+ _hurd_sigstate_lock (ss);
old = ss->blocked;
@@ -61,7 +62,7 @@ __sigprocmask (how, set, oset)
break;
default:
- __spin_unlock (&ss->lock);
+ _hurd_sigstate_unlock (ss);
errno = EINVAL;
return -1;
}
@@ -69,9 +70,9 @@ __sigprocmask (how, set, oset)
ss->blocked &= ~_SIG_CANT_MASK;
}
- pending = ss->pending & ~ss->blocked;
+ pending = _hurd_sigstate_pending (ss) & ~ss->blocked;
- __spin_unlock (&ss->lock);
+ _hurd_sigstate_unlock (ss);
if (oset != NULL)
*oset = old;