Both Valve and QuickConnect need extremely special windows implementations.
- Python's
.read() will only break on an actual triggered interrupt, not just a faked exception through PyThreadState_SetAsyncExc().
- Window's select only works on sockets, not pipes or other IO types.
So I think we need to use win32's ReadFile() manually in conjunction with CancelSynchronousIo() in order to not read an extra block when switching.
Both
ValveandQuickConnectneed extremely special windows implementations..read()will only break on an actual triggered interrupt, not just a faked exception throughPyThreadState_SetAsyncExc().So I think we need to use win32's
ReadFile()manually in conjunction withCancelSynchronousIo()in order to not read an extra block when switching.