diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-02-21 02:34:35 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2012-02-21 02:34:35 +0100 |
commit | 2ec583b0e9d55120e2538c2b8bacb292b6d3dada (patch) | |
tree | 4ca3f18e216c181ac452ff64652f1b999e874c7c /sysdeps/mach/hurd/sigprocmask.c | |
parent | c2fb0b60d1a90e8aeab2e2a90ab818bea30c617f (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.c | 11 |
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; |