Windows: Use I/O completion ports for transfers
authorChris Dickens <christopher.a.dickens@gmail.com>
Tue, 11 Aug 2020 02:19:21 +0000 (19:19 -0700)
committerChris Dickens <christopher.a.dickens@gmail.com>
Tue, 11 Aug 2020 02:19:21 +0000 (19:19 -0700)
commitba6b8bcb7ea204e65a3deec3be81aacc9f4b6d5a
tree5f9973529ab12e853b36172846c8f26b49ced300
parent9576ad4b8f94698aeba5218caf9e9e1f28a6f44d
Windows: Use I/O completion ports for transfers

As a first step in removing the Windows poll() emulation, switch the
transfers to use an I/O completion port. A dedicated per-context thread
will wait on the I/O completion port and report transfer completions
using usbi_signal_transfer_completion(). This enables the complete
removal of the handle_events() function for the Windows backend and
removes the notion of one "file descriptor" per transfer.

Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
libusb/os/poll_windows.c
libusb/os/poll_windows.h
libusb/os/windows_common.c
libusb/os/windows_common.h
libusb/os/windows_usbdk.c
libusb/os/windows_winusb.c
libusb/version_nano.h