Add sigpending to redbean unix.* module ()

This commit is contained in:
Paul Kulchenko 2022-09-09 04:20:13 -07:00 committed by GitHub
parent 2d17ab016c
commit f68151c010
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions
third_party/lua
tool/net

View file

@ -1797,6 +1797,20 @@ static int LuaUnixSigsuspend(lua_State *L) {
return LuaUnixSysretErrno(L, "sigsuspend", olderr);
}
// unix.sigpending()
// ├─→ mask:unix.Sigset
// └─→ nil, unix.Errno
static int LuaUnixSigpending(lua_State *L) {
int olderr = errno;
struct sigset mask;
if (!sigpending(&mask)) {
LuaPushSigset(L, mask);
return 1;
} else {
return LuaUnixSysretErrno(L, "sigpending", olderr);
}
}
// unix.setitimer(which[, intervalsec, intns, valuesec, valuens])
// ├─→ intervalsec:int, intervalns:int, valuesec:int, valuens:int
// └─→ nil, unix.Errno
@ -2977,6 +2991,7 @@ static const luaL_Reg kLuaUnix[] = {
{"shutdown", LuaUnixShutdown}, // make socket half empty or full
{"sigaction", LuaUnixSigaction}, // install signal handler
{"sigprocmask", LuaUnixSigprocmask}, // change signal mask
{"sigpending", LuaUnixSigpending}, // get pending signals
{"sigsuspend", LuaUnixSigsuspend}, // wait for signal
{"siocgifconf", LuaUnixSiocgifconf}, // get list of network interfaces
{"socket", LuaUnixSocket}, // create network communication fd

View file

@ -3887,6 +3887,12 @@ UNIX MODULE
It's a good idea to not do too much work in a signal handler.
unix.sigpending()
├─→ mask:unix.Sigset
└─→ nil, unix.Errno
Returns the set of signals that are pending for delivery.
unix.sigsuspend([mask:unix.Sigset])
└─→ nil, unix.Errno