Cygwin: serial: revamp overlapped IO in read and select

Get rid of WaitCommEvent and using overlapped_armed to share the
same overlapped operation between read and select.  Rather, make
sure to cancel the overlapped IO before leaving any of these functions.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
Corinna Vinschen
2020-03-18 21:14:06 +01:00
parent 93b491c4f2
commit 2929599590
4 changed files with 85 additions and 199 deletions

View File

@@ -67,11 +67,6 @@ struct select_socket_info: public select_info
select_socket_info (): select_info (), num_w4 (0), ser_num (0), w4 (NULL) {}
};
struct select_serial_info: public select_info
{
select_serial_info (): select_info () {}
};
class select_stuff
{
public:
@@ -92,7 +87,6 @@ public:
select_pipe_info *device_specific_ptys;
select_fifo_info *device_specific_fifo;
select_socket_info *device_specific_socket;
select_serial_info *device_specific_serial;
bool test_and_set (int, fd_set *, fd_set *, fd_set *);
int poll (fd_set *, fd_set *, fd_set *);
@@ -105,8 +99,7 @@ public:
device_specific_pipe (NULL),
device_specific_ptys (NULL),
device_specific_fifo (NULL),
device_specific_socket (NULL),
device_specific_serial (NULL)
device_specific_socket (NULL)
{}
};