/* * 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 #include #include "syscall.h" #include "libc.h" #include "emscripten_internal.h" 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 = {.si_signo = sig}; *si = t; } sigdelset(&__sig_pending, sig); return sig; } } errno = EINVAL; return -1; }