forked from Imagelibrary/rtems
posix: _POSIX_signals_Clear_process_signals()
Do not disable interrupts since the caller did this already.
This commit is contained in:
@@ -18,24 +18,8 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#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/psignalimpl.h>
|
||||||
#include <rtems/posix/pthreadimpl.h>
|
#include <rtems/score/assert.h>
|
||||||
#include <rtems/posix/time.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
/*
|
|
||||||
* _POSIX_signals_Clear_process_signals
|
|
||||||
*/
|
|
||||||
|
|
||||||
void _POSIX_signals_Clear_process_signals(
|
void _POSIX_signals_Clear_process_signals(
|
||||||
int signo
|
int signo
|
||||||
@@ -44,18 +28,17 @@ void _POSIX_signals_Clear_process_signals(
|
|||||||
sigset_t mask;
|
sigset_t mask;
|
||||||
bool clear_signal;
|
bool clear_signal;
|
||||||
|
|
||||||
|
_Assert( _ISR_Get_level() != 0 );
|
||||||
|
|
||||||
clear_signal = true;
|
clear_signal = true;
|
||||||
mask = signo_to_mask( signo );
|
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 ( clear_signal ) {
|
||||||
if ( _POSIX_signals_Vectors[ signo ].sa_flags == SA_SIGINFO ) {
|
_POSIX_signals_Pending &= ~mask;
|
||||||
if ( !_Chain_Is_empty( &_POSIX_signals_Siginfo[ signo ] ) )
|
}
|
||||||
clear_signal = false;
|
|
||||||
}
|
|
||||||
if ( clear_signal ) {
|
|
||||||
_POSIX_signals_Pending &= ~mask;
|
|
||||||
}
|
|
||||||
_ISR_Enable( level );
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user