Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2006-03-22 07:13:55 +0300
committerChristopher Faylor <me@cgf.cx>2006-03-22 07:13:55 +0300
commit70fde4154fc4b24af9abaf0a335f06952698852c (patch)
treea9d96cb52de50ecc7b1da29dbd20f70829642d5c /winsup/cygwin/sigproc.cc
parent76ef40d69f3651f01b3e2ffdeb470593d62e04b0 (diff)
* signal.cc (signal): Don't set SA_RESTART here.
(siginterrupt): White space. * sigproc.cc (sigalloc): Set SA_RESTART here, on initialization.
Diffstat (limited to 'winsup/cygwin/sigproc.cc')
-rw-r--r--winsup/cygwin/sigproc.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc
index 51c756934..1adbb9f21 100644
--- a/winsup/cygwin/sigproc.cc
+++ b/winsup/cygwin/sigproc.cc
@@ -113,6 +113,10 @@ sigalloc ()
cygheap->sigs = global_sigs =
(struct sigaction *) ccalloc (HEAP_SIGS, NSIG, sizeof (struct sigaction));
global_sigs[SIGSTOP].sa_flags = SA_RESTART | SA_NODEFER;
+ for (int i = 0; i < NSIG; i++)
+ /* SA_RESTART is set to maintain BSD compatible signal behaviour by default.
+ This is also compatible with the behaviour of signal(2) in Linux. */
+ global_sigs[i].sa_flags = SA_RESTART;
}
void __stdcall