flst / upstream /emscripten /system /lib /libc /sigtimedwait.c
arudradey's picture
Upload folder using huggingface_hub
00df61d verified
Raw
History Blame Contribute Delete
784 Bytes
/*
* 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"
#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;
}