summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-26 16:22:30 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-08-27 10:48:17 +0200
commitca68215e19a76ee091ac3755abb2989edcaa2824 (patch)
tree4baa5d065432eccefd22122d0d0740ced5229707
parentrtems: Add SMP support for signals (diff)
downloadrtems-ca68215e19a76ee091ac3755abb2989edcaa2824.tar.bz2
posix: _POSIX_signals_Clear_process_signals()
Do not disable interrupts since the caller did this already.
-rw-r--r--cpukit/posix/src/psignalclearprocesssignals.c39
1 files changed, 11 insertions, 28 deletions
diff --git a/cpukit/posix/src/psignalclearprocesssignals.c b/cpukit/posix/src/psignalclearprocesssignals.c
index 07e4a216bc..aa2cd49e6d 100644
--- a/cpukit/posix/src/psignalclearprocesssignals.c
+++ b/cpukit/posix/src/psignalclearprocesssignals.c
@@ -18,24 +18,8 @@
#include "config.h"
#endif
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-
-#include <rtems/system.h>
-#include <rtems/score/isr.h>
-#include <rtems/score/thread.h>
-#include <rtems/score/wkspace.h>
-#include <rtems/seterr.h>
-#include <rtems/posix/threadsup.h>
#include <rtems/posix/psignalimpl.h>
-#include <rtems/posix/pthreadimpl.h>
-#include <rtems/posix/time.h>
-#include <stdio.h>
-
-/*
- * _POSIX_signals_Clear_process_signals
- */
+#include <rtems/score/assert.h>
void _POSIX_signals_Clear_process_signals(
int signo
@@ -44,18 +28,17 @@ void _POSIX_signals_Clear_process_signals(
sigset_t mask;
bool clear_signal;
+ _Assert( _ISR_Get_level() != 0 );
+
clear_signal = true;
mask = signo_to_mask( signo );
- ISR_Level level;
-
- _ISR_Disable( level );
- if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
- if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )
- clear_signal = false;
- }
- if ( clear_signal ) {
- _POSIX_signals_Pending &= ~mask;
- }
- _ISR_Enable( level );
+ if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
+ if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )
+ clear_signal = false;
+ }
+
+ if ( clear_signal ) {
+ _POSIX_signals_Pending &= ~mask;
+ }
}