Message148187
> 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. |
|
Date |
User |
Action |
Args |
2011-11-23 16:01:29 | pitrou | set | recipients:
+ pitrou, tim.golden, jnoller, brian.curtin, python-dev, sbt |
2011-11-23 16:01:25 | pitrou | link | issue12328 messages |
2011-11-23 16:01:25 | pitrou | create | |
|