Message148158
> Here is an updated patch (pipe_poll_fix.patch) which should be applied
> on top of sigint_event.patch.
>
> It fixes the problems with PipeConnection.poll() and Queue.empty() and
> makes PipeListener.accept() use overlapped I/O. This should make all
> the pipe releated blocking functions/methods interruptible on Windows.
I have the feeling that if we have to call GetLastError() at the Python
level, then there's something wrong with the APIs we're exposing from
the C extension.
I see you check for ERROR_OPERATION_ABORTED. Is there any situation
where this can happen?
Also, it seems strange to call ov.cancel() and then
ov.GetOverlappedResult(). AFAICT, those two operations should be
mutually exclusive: you call the former if e.g. WaitForMultipleObjects
raised an exception, the latter otherwise. |
|
Date |
User |
Action |
Args |
2011-11-23 00:03:25 | pitrou | set | recipients:
+ pitrou, tim.golden, jnoller, brian.curtin, python-dev, sbt |
2011-11-23 00:03:25 | pitrou | link | issue12328 messages |
2011-11-23 00:03:24 | pitrou | create | |
|