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/posix/src | |
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/posix/src')
-rw-r--r-- | cpukit/posix/src/psignal.c | 45 |
1 files changed, 23 insertions, 22 deletions
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 |