aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/dcrt0.cc7
-rw-r--r--winsup/cygwin/exceptions.cc2
-rw-r--r--winsup/cygwin/include/cygwin/signal.h2
4 files changed, 11 insertions, 7 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 50dd8a9..2612590 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,10 @@
+2006-01-01 Christopher Faylor <cgf@timesys.com>
+
+ * exceptions.cc (_cygtls::interrupt_setup): Implement SA_RESETHAND.
+ * include/cygwin/signal.h: Define SA_ONESHOT and SA_NOMASK.
+
+ * dcrt0.cc (get_cygwin_startup_info): Remove commented out code.
+
2006-01-01 Corinna Vinschen <corinna@vinschen.de>
* syslog.cc (vklog): Never log kernel messages using the vsyslog
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index 04bef6e..d4eec98 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -623,15 +623,8 @@ get_cygwin_startup_info ()
if (res->straced)
{
res->ready (false);
-#if 0
- DWORD prio = GetThreadPriority (GetCurrentThread ());
- SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_IDLE);
-#endif
for (unsigned i = 0; !being_debugged () && i < 10000; i++)
low_priority_sleep (0);
-#if 0
- SetThreadPriority (GetCurrentThread (), prio);
-#endif
strace.hello ();
}
break;
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index 48ea756..73f5cfd 100644
--- a/winsup/cygwin/exceptions.cc
+++ b/winsup/cygwin/exceptions.cc
@@ -744,6 +744,8 @@ _cygtls::interrupt_setup (int sig, void *handler, struct sigaction& siga)
deltamask = siga.sa_mask & ~SIG_NONMASKABLE;
sa_flags = siga.sa_flags;
func = (void (*) (int)) handler;
+ if (siga.sa_flags & SA_RESETHAND)
+ siga.sa_handler = SIG_DFL;
saved_errno = -1; // Flag: no errno to save
if (handler == sig_handle_tty_stop)
{
diff --git a/winsup/cygwin/include/cygwin/signal.h b/winsup/cygwin/include/cygwin/signal.h
index 0ccdbc0..6db94a1 100644
--- a/winsup/cygwin/include/cygwin/signal.h
+++ b/winsup/cygwin/include/cygwin/signal.h
@@ -179,6 +179,8 @@ struct sigaction
#define SA_NODEFER 0x40000000 /* Don't automatically block the signal
when its handler is being executed */
#define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler */
+#define SA_ONESHOT SA_RESETHAND /* Historical linux name */
+#define SA_NOMASK SA_NODEFER /* Historical linux name */
#define SIGHUP 1 /* hangup */
#define SIGINT 2 /* interrupt */