blob: bccedd87323ed5cbe8224f70766ba2ee4977e00a [file] [edit]
/*
* Copyright 2021 The Emscripten Authors. All rights reserved.
* Emscripten is available under two separate licenses, the MIT license and the
* University of Illinois/NCSA Open Source License. Both these licenses can be
* found in the LICENSE file.
*/
#include <signal.h>
#include <errno.h>
#include "syscall.h"
#include "libc.h"
extern sigset_t __sig_pending;
int sigtimedwait(const sigset_t *restrict mask, siginfo_t *restrict si, const struct timespec *restrict timeout) {
for (int sig = 0; sig < _NSIG; sig++) {
if (sigismember(mask, sig) && sigismember(&__sig_pending, sig)) {
if (si) {
siginfo_t t = {0};
*si = t;
}
sigdelset(&__sig_pending, sig);
return sig;
}
}
errno = EINVAL;
return -1;
}