diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-01-11 15:42:05 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2000-01-11 15:42:05 +0000 |
commit | 4fa5eaee52c79068cb115582f00c0a2505906210 (patch) | |
tree | 20a0c156286a60cbdd0151ebc4077ac16f0b0943 | |
parent | Bug fix from Wayne Bullaughey <wayneb@cacdsp.com> to use the complement (diff) | |
download | rtems-4fa5eaee52c79068cb115582f00c0a2505906210.tar.bz2 |
This code did not return properly when a process oriented signal
was pending. Reported by Wayne Bullaughey <wayneb@cacdsp.com>.
Diffstat (limited to '')
-rw-r--r-- | c/src/exec/posix/src/sigtimedwait.c | 11 | ||||
-rw-r--r-- | cpukit/posix/src/sigtimedwait.c | 11 |
2 files changed, 10 insertions, 12 deletions
diff --git a/c/src/exec/posix/src/sigtimedwait.c b/c/src/exec/posix/src/sigtimedwait.c index 2134d8a82a..b3b2de247d 100644 --- a/c/src/exec/posix/src/sigtimedwait.c +++ b/c/src/exec/posix/src/sigtimedwait.c @@ -80,15 +80,14 @@ int sigtimedwait( /* Process pending signals? */ - if ( *set & _POSIX_signals_Pending) { + if ( *set & _POSIX_signals_Pending ) { signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); _POSIX_signals_Clear_signals( api, signo, the_info, TRUE, FALSE ); - if ( !info ) { - the_info->si_signo = signo; - the_info->si_code = SI_USER; - the_info->si_value.sival_int = 0; - } + the_info->si_signo = signo; + the_info->si_code = SI_USER; + the_info->si_value.sival_int = 0; + return signo; } interval = 0; diff --git a/cpukit/posix/src/sigtimedwait.c b/cpukit/posix/src/sigtimedwait.c index 2134d8a82a..b3b2de247d 100644 --- a/cpukit/posix/src/sigtimedwait.c +++ b/cpukit/posix/src/sigtimedwait.c @@ -80,15 +80,14 @@ int sigtimedwait( /* Process pending signals? */ - if ( *set & _POSIX_signals_Pending) { + if ( *set & _POSIX_signals_Pending ) { signo = _POSIX_signals_Get_highest( _POSIX_signals_Pending ); _POSIX_signals_Clear_signals( api, signo, the_info, TRUE, FALSE ); - if ( !info ) { - the_info->si_signo = signo; - the_info->si_code = SI_USER; - the_info->si_value.sival_int = 0; - } + the_info->si_signo = signo; + the_info->si_code = SI_USER; + the_info->si_value.sival_int = 0; + return signo; } interval = 0; |