(__sigwait): The return value semantics for sigtimedwait is different. Rework the return value handling and don't pass in an siginfo variable.

This commit is contained in:
Ulrich Drepper 2002-09-29 22:02:28 +00:00
parent 28b48696d1
commit 8a815198bf
1 changed files with 9 additions and 4 deletions

View File

@ -36,15 +36,20 @@ __sigwait (set, sig)
const sigset_t *set;
int *sig;
{
siginfo_t info;
int ret;
/* XXX The size argument hopefully will have to be changed to the
real size of the user-level sigset_t. */
/* XXX INLINE_SYSCALL_NOERROR candiate. */
ret = INLINE_SYSCALL (rt_sigtimedwait, 4, CHECK_SIGSET (set),
CHECK_1 (&info), NULL, _NSIG / 8);
if (ret == 0)
*sig = info.si_signo;
NULL, NULL, _NSIG / 8);
if (ret != -1)
{
*sig = ret;
ret = 0;
}
else
ret = errno;
return ret;
}