summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src/psignalclearsignals.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-08-05 19:09:21 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-08-05 19:09:21 +0000
commit21de9dcbda887d0589f456eb292a9dadd6e4b376 (patch)
tree0b75f5701c3b3ebbcbb216cedc4095e7e80cc0f3 /cpukit/posix/src/psignalclearsignals.c
parent2009-08-05 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-21de9dcbda887d0589f456eb292a9dadd6e4b376.tar.bz2
2009-08-05 Joel Sherrill <joel.sherrill@OARcorp.com>
* posix/src/psignalclearsignals.c: Add comments.
Diffstat (limited to 'cpukit/posix/src/psignalclearsignals.c')
-rw-r--r--cpukit/posix/src/psignalclearsignals.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/cpukit/posix/src/psignalclearsignals.c b/cpukit/posix/src/psignalclearsignals.c
index 480ba51b70..4143d53ec9 100644
--- a/cpukit/posix/src/psignalclearsignals.c
+++ b/cpukit/posix/src/psignalclearsignals.c
@@ -61,8 +61,8 @@ bool _POSIX_signals_Clear_signals(
else
signals_blocked = SIGNAL_ALL_MASK;
- /* XXX this is not right for siginfo type signals yet */
- /* XXX since they can't be cleared the same way */
+ /* XXX is this right for siginfo type signals? */
+ /* XXX are we sure they can be cleared the same way? */
_ISR_Disable( level );
if ( is_global ) {
@@ -71,6 +71,11 @@ bool _POSIX_signals_Clear_signals(
psiginfo = (POSIX_signals_Siginfo_node *)
_Chain_Get_unprotected( &_POSIX_signals_Siginfo[ signo ] );
_POSIX_signals_Clear_process_signals( signo );
+ /*
+ * It may be impossible to get here with an empty chain
+ * BUT until that is proven we need to be defensive and
+ * protect against it.
+ */
if ( psiginfo ) {
*info = psiginfo->Info;
_Chain_Append_unprotected(