diff options
author | Christopher Faylor <me@cgf.cx> | 2012-07-30 07:44:40 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2012-07-30 07:44:40 +0400 |
commit | d239805457f0dc790559b2173e943e5aebe90c4e (patch) | |
tree | a015664429e36ad8caa921deb24e5202d442bf34 /winsup/cygwin/signal.cc | |
parent | c1a11ccfca40ec5d162caf747bca94d9b698c34e (diff) |
* cygwait.cc (cancelable_wait): Add some debugging-only output.
* exceptions.cc (sig_handle_tty_stop): Make sure that incyg is cleared when
exiting if we have no parent process. Only wait for signal_arrived.
(sigpacket::process): Make continue_now a bool. Delay sending signal_arrived
until the end. Make code more defensive to avoid calling signal handler when
stopped. Only set signal_arrived when stopped.
* sigproc.cc (sig_hold): Rename from sigCONT. Make static.
(sig_send): Accommodate sigCONT -> sig_hold rename.
(wait_sig): Ditto.
* sigproc.h (sigCONT): Delete declaration.
* fhandler_console.cc (fhandler_console::write): Use new '%0c' facility to
print characters. Change to paranoid to avoid excessive strace output.
* fhandler_tty.cc (fhandler_pty_master::accept_input): Make frequent strace
printf "paranoid" to help cut down on strace output size.
* signal.cc (sigsuspend): Add standard syscall strace output.
(sigpause): Ditto.
(pause): Ditto.
* cygtls.h (_cygtls::reset_signal_arrived): New function.
Diffstat (limited to 'winsup/cygwin/signal.cc')
-rw-r--r-- | winsup/cygwin/signal.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc index f2d68c775..b34defb99 100644 --- a/winsup/cygwin/signal.cc +++ b/winsup/cygwin/signal.cc @@ -517,19 +517,25 @@ sigfillset (sigset_t *set) extern "C" int sigsuspend (const sigset_t *set) { - return handle_sigsuspend (*set); + int res = handle_sigsuspend (*set); + syscall_printf ("%R = sigsuspend(%p)", res, set); + return res; } extern "C" int sigpause (int signal_mask) { - return handle_sigsuspend ((sigset_t) signal_mask); + int res = handle_sigsuspend ((sigset_t) signal_mask); + syscall_printf ("%R = sigpause(%p)", res, signal_mask); + return res; } extern "C" int pause (void) { - return handle_sigsuspend (_my_tls.sigmask); + int res = handle_sigsuspend (_my_tls.sigmask); + syscall_printf ("%R = pause()", res); + return res; } extern "C" int |