summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/fhandler_serial.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2011-12-04 18:32:00 +0000
committerChristopher Faylor <me@cgf.cx>2011-12-04 18:32:00 +0000
commit79e59d522afe5692c09ab21eade08947eca3ec19 (patch)
treecd44280ba1c10616a5bb8d19ed01f2681d75045c /winsup/cygwin/fhandler_serial.cc
parent4510afa90d42eec08a2ec91f4203ed126ab998c8 (diff)
downloadcygnal-79e59d522afe5692c09ab21eade08947eca3ec19.tar.gz
cygnal-79e59d522afe5692c09ab21eade08947eca3ec19.tar.bz2
cygnal-79e59d522afe5692c09ab21eade08947eca3ec19.zip
* sigproc.cc (cygWFMO): Don't assume that cancellable event is always
available. * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::waitforspace): Use cygWFMO instead of WaitForMultipleObjects. (fhandler_dev_dsp::Audio_in::waitfordata): Ditto. * fhandler_fifo.cc (fhandler_fifo::wait): Ditto. * fhandler_serial.cc (fhandler_serial::raw_read): Ditto. (fhandler_serial::raw_write): Ditto. * fhandler_tty.cc (fhandler_pty_slave::read): Ditto. * select.cc (cygwin_select): Ditto for degenerate case.
Diffstat (limited to 'winsup/cygwin/fhandler_serial.cc')
-rw-r--r--winsup/cygwin/fhandler_serial.cc10
1 files changed, 2 insertions, 8 deletions
diff --git a/winsup/cygwin/fhandler_serial.cc b/winsup/cygwin/fhandler_serial.cc
index 90494b8e9..1503cdc75 100644
--- a/winsup/cygwin/fhandler_serial.cc
+++ b/winsup/cygwin/fhandler_serial.cc
@@ -94,12 +94,9 @@ fhandler_serial::raw_read (void *ptr, size_t& ulen)
}
else
{
- HANDLE w4[3] = { io_status.hEvent, signal_arrived,
- pthread::get_cancel_event () };
- DWORD cnt = w4[2] ? 3 : 2;
overlapped_armed = 1;
restart:
- switch (WaitForMultipleObjects (cnt, w4, FALSE, INFINITE))
+ switch (cygWFMO (1, INFINITE, io_status.hEvent))
{
case WAIT_OBJECT_0:
if (!GetOverlappedResult (get_handle (), &io_status, &n,
@@ -205,11 +202,8 @@ fhandler_serial::raw_write (const void *ptr, size_t len)
if (!is_nonblocking ())
{
- HANDLE w4[3] = { write_status.hEvent, signal_arrived,
- pthread::get_cancel_event () };
- DWORD cnt = w4[2] ? 3 : 2;
restart:
- switch (WaitForMultipleObjects (cnt, w4, FALSE, INFINITE))
+ switch (cygWFMO (1, INFINITE, write_status.hEvent))
{
case WAIT_OBJECT_0:
break;