diff options
author | Christopher Faylor <me@cgf.cx> | 2006-01-01 16:51:29 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2006-01-01 16:51:29 +0000 |
commit | a14d65557ae36ff4de926b9bd4cc4010917a09c5 (patch) | |
tree | 0c8a55a2def862f9bea23558d886974b70a159b8 | |
parent | a89b700926b5b75d62048f1a02b040d4d6f057cf (diff) | |
download | newlib-a14d65557ae36ff4de926b9bd4cc4010917a09c5.zip newlib-a14d65557ae36ff4de926b9bd4cc4010917a09c5.tar.gz newlib-a14d65557ae36ff4de926b9bd4cc4010917a09c5.tar.bz2 |
* 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.
-rw-r--r-- | winsup/cygwin/ChangeLog | 7 | ||||
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 7 | ||||
-rw-r--r-- | winsup/cygwin/exceptions.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/include/cygwin/signal.h | 2 |
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 */ |