* 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.
This commit is contained in:
Christopher Faylor
2011-12-04 18:32:00 +00:00
parent 4510afa90d
commit 79e59d522a
7 changed files with 26 additions and 31 deletions

View File

@@ -702,10 +702,7 @@ fhandler_pty_slave::read (void *ptr, size_t& len)
while (len)
{
HANDLE w4[3] = { input_available_event, signal_arrived,
pthread::get_cancel_event () };
DWORD cnt = w4[2] ? 3 : 2;
switch (WaitForMultipleObjects (cnt, w4, FALSE, time_to_wait))
switch (cygWFMO (1, time_to_wait, input_available_event))
{
case WAIT_OBJECT_0:
break;
@@ -741,8 +738,7 @@ fhandler_pty_slave::read (void *ptr, size_t& len)
}
/* Now that we know that input is available we have to grab the
input mutex. */
w4[0] = input_mutex;
switch (WaitForMultipleObjects (cnt, w4, FALSE, 1000))
switch (cygWFMO (1, 1000, input_mutex))
{
case WAIT_OBJECT_0:
case WAIT_ABANDONED_0: