Antoine Pitrou <pit...@free.fr> added the comment: > 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. ---------- _______________________________________ 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