diff options
author | Christopher Faylor <me@cgf.cx> | 2011-12-13 08:11:48 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2011-12-13 08:11:48 +0400 |
commit | 8cb58e85662d1a0c3288020780ce2389850dc465 (patch) | |
tree | 50aab7377010623e33643cd83deb564e747a5de7 /winsup/cygwin/fhandler.cc | |
parent | a7ea1550ff7a0a1dde12676fdcf25bf05937ca72 (diff) |
* cygthread.h (cygthread::name): Very minor formatting tweak.
* exceptions.cc (_cygtls::call_signal_handler): Add paranoid debugging output.
* sigproc.h (cygwait): Call signal handler when signal is detected and loop as
appropriate.
* fhandler.h (fhandler_base_overlapped::wait_return): Remove overlapped_signal.
* fhandler.cc (fhandler_base_overlapped::wait_overlapped): Remove restartable
signal accommodations in light of cygwait improvements.
(fhandler_base_overlapped::raw_read): Remove now-obsolete signal loop behavior.
(fhandler_base_overlapped::raw_write): Ditto.
* fhandler_console.cc (fhandler_console::read): Ditto.
* fhandler_serial.cc (fhandler_serial::raw_read): Ditto.
(fhandler_serial::raw_write): Ditto.
* fhandler_tty.cc (fhandler_pty_slave::read): Ditto.
* ioctl.cc (ioctl): Add standard syscall introducer and leaver debug output.
Diffstat (limited to 'winsup/cygwin/fhandler.cc')
-rw-r--r-- | winsup/cygwin/fhandler.cc | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc index 48e114f28..c6388cc64 100644 --- a/winsup/cygwin/fhandler.cc +++ b/winsup/cygwin/fhandler.cc @@ -1942,14 +1942,9 @@ fhandler_base_overlapped::wait_overlapped (bool inres, bool writing, DWORD *byte res = overlapped_success; /* operation succeeded */ else if (wfres == WAIT_OBJECT_0 + 1) { - if (_my_tls.call_signal_handler ()) - res = overlapped_signal; - else - { - err = ERROR_INVALID_AT_INTERRUPT_TIME; /* forces an EINTR below */ - debug_printf ("unhandled signal"); - res = overlapped_error; - } + err = ERROR_INVALID_AT_INTERRUPT_TIME; /* forces an EINTR below */ + debug_printf ("unhandled signal"); + res = overlapped_error; } else if (nonblocking) res = overlapped_nonblocking_no_data; /* more handling below */ @@ -1964,8 +1959,6 @@ fhandler_base_overlapped::wait_overlapped (bool inres, bool writing, DWORD *byte if (res == overlapped_success) debug_printf ("normal %s, %u bytes", writing ? "write" : "read", *bytes); - else if (res == overlapped_signal) - debug_printf ("handled signal"); else if (res == overlapped_nonblocking_no_data) { *bytes = (DWORD) -1; @@ -2003,9 +1996,6 @@ fhandler_base_overlapped::raw_read (void *ptr, size_t& len) get_overlapped ()); switch (wait_overlapped (res, false, &nbytes, is_nonblocking ())) { - case overlapped_signal: - keep_looping = true; - break; default: /* Added to quiet gcc */ case overlapped_success: case overlapped_error: @@ -2059,8 +2049,6 @@ fhandler_base_overlapped::raw_write (const void *ptr, size_t len) ptr = ((char *) ptr) + chunk; nbytes += nbytes_now; /* fall through intentionally */ - case overlapped_signal: - break; /* keep looping */ case overlapped_error: len = 0; /* terminate loop */ case overlapped_unknown: |