This code did not return properly when a process oriented signal

was pending.  Reported by Wayne Bullaughey <wayneb@cacdsp.com>.
This commit is contained in:
Joel Sherrill
2000-01-11 15:42:05 +00:00
parent 86c9eb0e28
commit 4fa5eaee52
2 changed files with 10 additions and 12 deletions

View File

@@ -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;

View File

@@ -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;