Antoine Pitrou <pit...@free.fr> added the comment: > There are three "expected" error conditions: > > ERROR_OPERATION_ABORTED: operation stopped by CancelIo(Ex)() > ERROR_MORE_DATA: operation complete, but only got part of the message > ERROR_IO_INCOMPLETE: operation still has not finished > > In the win32 api you need GetLastError() to distinguish between these > cases, but maybe we can expose something better.
It seems to me that ERROR_OPERATION_ABORTED is a "true" error, and so should raise an exception. > The cases aren't really mutually exclusive: if you call ov.cancel() > you *must* still do ov.GetOverlappedResult(True) to check for the race > where the operation completes after the wait times out, but before > ov.cancel() can stop it. (Your original implementation had that bug > -- see point (5) in my original bug report.) Ah, right. Thanks for the explanation. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12328> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com