summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src/psignal.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/posix/src/psignal.c')
-rw-r--r--cpukit/posix/src/psignal.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/cpukit/posix/src/psignal.c b/cpukit/posix/src/psignal.c
index 1778cece17..5258b2bf9e 100644
--- a/cpukit/posix/src/psignal.c
+++ b/cpukit/posix/src/psignal.c
@@ -45,6 +45,8 @@ RTEMS_STATIC_ASSERT(
/*** PROCESS WIDE STUFF ****/
+ISR_lock_Control _POSIX_signals_Lock = ISR_LOCK_INITIALIZER;
+
sigset_t _POSIX_signals_Pending;
void _POSIX_signals_Abnormal_termination_handler(
@@ -144,13 +146,13 @@ static void _POSIX_signals_Post_switch_hook(
* processed at all. No point in doing this loop otherwise.
*/
while (1) {
- _ISR_Disable( level );
+ _POSIX_signals_Acquire( level );
if ( !(~api->signals_blocked &
(api->signals_pending | _POSIX_signals_Pending)) ) {
- _ISR_Enable( level );
+ _POSIX_signals_Release( level );
break;
}
- _ISR_Enable( level );
+ _POSIX_signals_Release( level );
for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) {
_POSIX_signals_Check_signal( api, signo, false );