diff options
Diffstat (limited to 'winsup/cygwin/signal.cc')
-rw-r--r-- | winsup/cygwin/signal.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc index 382a8a2ec..9c807f4ef 100644 --- a/winsup/cygwin/signal.cc +++ b/winsup/cygwin/signal.cc @@ -407,3 +407,16 @@ pause (void) { return handle_sigsuspend (myself->getsigmask ()); } + +extern "C" int +siginterrupt (int sig, int flag) +{ + struct sigaction act; + (void)sigaction(sig, NULL, &act); + if (flag) + act.sa_flags &= ~SA_RESTART; + else + act.sa_flags |= SA_RESTART; + return sigaction(sig, &act, NULL); +} + |