2011-02-12 00:22:29 -05:00
|
|
|
#include <signal.h>
|
2011-03-10 10:43:09 -05:00
|
|
|
#include <errno.h>
|
2011-02-12 00:22:29 -05:00
|
|
|
#include "syscall.h"
|
2011-03-10 10:59:50 -05:00
|
|
|
#include "libc.h"
|
2011-02-12 00:22:29 -05:00
|
|
|
|
|
|
|
int sigtimedwait(const sigset_t *mask, siginfo_t *si, const struct timespec *timeout)
|
|
|
|
{
|
2011-03-10 10:43:09 -05:00
|
|
|
int ret;
|
2011-03-10 10:59:50 -05:00
|
|
|
CANCELPT_BEGIN;
|
2011-03-10 10:43:09 -05:00
|
|
|
do {
|
2011-03-19 21:36:10 -04:00
|
|
|
ret = syscall(__NR_rt_sigtimedwait, mask, si, timeout, 8);
|
2011-03-10 10:43:09 -05:00
|
|
|
} while (ret<0 && errno==EINTR);
|
2011-03-10 10:59:50 -05:00
|
|
|
CANCELPT_END;
|
2011-03-10 10:43:09 -05:00
|
|
|
return ret;
|
2011-02-12 00:22:29 -05:00
|
|
|
}
|