diff options
author | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2007-12-19 18:46:12 +0000 |
---|---|---|
committer | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2007-12-19 18:46:12 +0000 |
commit | 1378d39e0db1800980e8233b6ad3ec103e40b5c1 (patch) | |
tree | 0e6d3e8d2fc55548a01187f83a6c4fcc9d7a3a3f /cpukit | |
parent | 2007-12-19 Jennifer Averett <jennifer.averett@OARcorp.com> (diff) | |
download | rtems-1378d39e0db1800980e8233b6ad3ec103e40b5c1.tar.bz2 |
2007-12-19 Jennifer Averett <jennifer.averett@OARcorp.com>
* posix/src/psignal.c: Move source around to enable path testing
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/ChangeLog | 4 | ||||
-rw-r--r-- | cpukit/posix/src/psignal.c | 45 |
2 files changed, 27 insertions, 22 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 7d265ec545..dbc5ab193e 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,7 @@ +2007-12-19 Jennifer Averett <jennifer.averett@OARcorp.com> + + * posix/src/psignal.c: Move source around to enable path testing + 2007-12-19 Joel Sherrill <joel.sherrill@OARcorp.com> * libcsupport/Makefile.am, libcsupport/include/rtems/malloc.h, diff --git a/cpukit/posix/src/psignal.c b/cpukit/posix/src/psignal.c index f86c8eb2e2..62500ba4a5 100644 --- a/cpukit/posix/src/psignal.c +++ b/cpukit/posix/src/psignal.c @@ -117,38 +117,39 @@ void _POSIX_signals_Post_switch_extension( * The first thing done is to check there are any signals to be * processed at all. No point in doing this loop otherwise. */ + while (1) { + restart: + _ISR_Disable( level ); + if ( !(~api->signals_blocked & + (api->signals_pending | _POSIX_signals_Pending)) ) { + _ISR_Enable( level ); + break; + } + _ISR_Enable( level ); -restart: - _ISR_Disable( level ); - if ( !(~api->signals_blocked & - (api->signals_pending | _POSIX_signals_Pending)) ) { - _ISR_Enable( level ); - return; - } - _ISR_Enable( level ); + for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { - for ( signo = SIGRTMIN ; signo <= SIGRTMAX ; signo++ ) { + if ( _POSIX_signals_Check_signal( api, signo, FALSE ) ) + goto restart; - if ( _POSIX_signals_Check_signal( api, signo, FALSE ) ) - goto restart; + if ( _POSIX_signals_Check_signal( api, signo, TRUE ) ) + goto restart; - if ( _POSIX_signals_Check_signal( api, signo, TRUE ) ) - goto restart; + } - } - -/* XXX - add __SIGFIRSTNOTRT or something like that to newlib signal .h */ + /* XXX - add __SIGFIRSTNOTRT or something like that to newlib signal .h */ - for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) { + for ( signo = SIGHUP ; signo <= __SIGLASTNOTRT ; signo++ ) { - if ( _POSIX_signals_Check_signal( api, signo, FALSE ) ) - goto restart; + if ( _POSIX_signals_Check_signal( api, signo, FALSE ) ) + goto restart; - if ( _POSIX_signals_Check_signal( api, signo, TRUE ) ) - goto restart; + if ( _POSIX_signals_Check_signal( api, signo, TRUE ) ) + goto restart; + } } - + return; } /*PAGE |