From 173d1f84736c50cdfbd058b2570d698957b7ba94 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 14 Dec 2015 13:10:24 +0100 Subject: posix: Store unblocked signals Store the unblock signals to exploit the zero-initialization of the thread control block. --- cpukit/posix/src/psignalclearsignals.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'cpukit/posix/src/psignalclearsignals.c') diff --git a/cpukit/posix/src/psignalclearsignals.c b/cpukit/posix/src/psignalclearsignals.c index 18bdea5d18..c7852554e5 100644 --- a/cpukit/posix/src/psignalclearsignals.c +++ b/cpukit/posix/src/psignalclearsignals.c @@ -46,7 +46,7 @@ bool _POSIX_signals_Clear_signals( ) { sigset_t mask; - sigset_t signals_blocked; + sigset_t signals_unblocked; ISR_lock_Context lock_context; bool do_callout; POSIX_signals_Siginfo_node *psiginfo; @@ -60,9 +60,9 @@ bool _POSIX_signals_Clear_signals( */ if ( check_blocked ) - signals_blocked = ~api->signals_blocked; + signals_unblocked = api->signals_unblocked; else - signals_blocked = SIGNAL_ALL_MASK; + signals_unblocked = SIGNAL_ALL_MASK; /* XXX is this right for siginfo type signals? */ /* XXX are we sure they can be cleared the same way? */ @@ -72,7 +72,7 @@ bool _POSIX_signals_Clear_signals( } if ( is_global ) { - if ( mask & (_POSIX_signals_Pending & signals_blocked) ) { + if ( mask & (_POSIX_signals_Pending & signals_unblocked) ) { if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) { psiginfo = (POSIX_signals_Siginfo_node *) _Chain_Get_unprotected( &_POSIX_signals_Siginfo[ signo ] ); @@ -95,7 +95,7 @@ bool _POSIX_signals_Clear_signals( do_callout = true; } } else { - if ( mask & (api->signals_pending & signals_blocked) ) { + if ( mask & (api->signals_pending & signals_unblocked) ) { api->signals_pending &= ~mask; do_callout = true; } -- cgit v1.2.3