New submission from Jeff Robbins <je...@livedata.com>:
The close() method of IocpProactor in windows_events.py has this code in its close() method: while self._cache: if not self._poll(1): logger.debug('taking long time to close proactor') The bug is that self._poll() has *no* return statements in it, and so returns None no matter what. Which makes the "if not" part confusing, at best. At worst, it might reflect a disconnect with the author's intent. I added a bit more logging and re-ran my test: while self._cache: logger.debug('before self._poll(1)') if not self._poll(1): logger.debug('taking long time to close proactor') logger.debug(f'{self._cache}') logger output: 20:16:30.247 (D) MainThread asyncio: before self._poll(1) 20:16:30.248 (D) MainThread asyncio: taking long time to close proactor 20:16:30.249 (D) MainThread asyncio: {} Obviously 1 millisecond isn't "taking a long time to close proactor". Also of interest, the _cache is now empty. I think the intent of the author must have been to check if the call to ._poll() cleared out any possible pending futures, or waited the full 1 second. Since ._poll() doesn't return any value to differentiate if it waited the full wait period or not, the "if" is wrong, and, I think, the intent of the author isn't met by this code. But, separate from speculating on "intent", the debug output of "taking a long time to close proactor" seems wrong, and the .close() code seems disassociated with the implementation of ._poll() in the same class IocpProactor in windows_events.py. ---------- components: asyncio messages: 332632 nosy: asvetlov, je...@livedata.com, yselivanov priority: normal severity: normal status: open title: asyncio windows_events.py IocpProactor bug versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35599> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com