mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 08:24:58 +00:00
LibC: Implement siginterrupt()
This is just a simple wrapper around the more-modern sigaction.
This commit is contained in:
parent
5e2fc52b25
commit
8bb423daf7
2 changed files with 15 additions and 0 deletions
|
@ -102,6 +102,20 @@ int sigdelset(sigset_t* set, int sig)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://pubs.opengroup.org/onlinepubs/009696699/functions/siginterrupt.html
|
||||||
|
int siginterrupt(int sig, int flag)
|
||||||
|
{
|
||||||
|
struct sigaction act;
|
||||||
|
int rc = sigaction(sig, nullptr, &act);
|
||||||
|
if (rc < 0)
|
||||||
|
return rc;
|
||||||
|
if (flag)
|
||||||
|
act.sa_flags &= ~SA_RESTART;
|
||||||
|
else
|
||||||
|
act.sa_flags |= SA_RESTART;
|
||||||
|
return sigaction(sig, &act, nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigismember.html
|
// https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigismember.html
|
||||||
int sigismember(sigset_t const* set, int sig)
|
int sigismember(sigset_t const* set, int sig)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,6 +28,7 @@ int sigfillset(sigset_t*);
|
||||||
int sigaddset(sigset_t*, int sig);
|
int sigaddset(sigset_t*, int sig);
|
||||||
int sigaltstack(stack_t const* ss, stack_t* old_ss);
|
int sigaltstack(stack_t const* ss, stack_t* old_ss);
|
||||||
int sigdelset(sigset_t*, int sig);
|
int sigdelset(sigset_t*, int sig);
|
||||||
|
int siginterrupt(int sig, int flag);
|
||||||
int sigismember(sigset_t const*, int sig);
|
int sigismember(sigset_t const*, int sig);
|
||||||
int sigprocmask(int how, sigset_t const* set, sigset_t* old_set);
|
int sigprocmask(int how, sigset_t const* set, sigset_t* old_set);
|
||||||
int sigpending(sigset_t*);
|
int sigpending(sigset_t*);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue