posix: _POSIX_signals_Clear_process_signals()

Do not disable interrupts since the caller did this already.
This commit is contained in:
Sebastian Huber
2013-08-26 16:22:30 +02:00
parent 75f6d18ee0
commit ca68215e19

View File

@@ -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;
if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )
clear_signal = false;
}
_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 ( clear_signal ) {
_POSIX_signals_Pending &= ~mask;
}
}