Currently I have this code
- Code: Select all
try:
win32event.ResetEvent(self._overlappedRead.hEvent)
rc, buf = win32file.ReadFile(handle, n, self._overlappedRead)
if rc == 997: #error_io_pending
#waiting for an event
win32event.WaitForSingleObject(
self._overlappedRead.hEvent,
win32event.INFINITE)
except:
self.abort = True
The control always flows in the rc == 997 condition. When data arrives, the events gets set and i can process the data in buf. When the device gets disconnected the event also gets set and my data processing algorithms runs on invalid data. I only get the error in the next loop, when I call ReadFile again.
