mirror of
https://github.com/python/cpython.git
synced 2025-10-31 21:51:50 +00:00
in the _cache dictionary, even if we already got the result. We need to keep a reference to the overlapped object, otherwise the memory may be reused and GetQueuedCompletionStatus() may use random bytes and behaves badly. There is still a hack for ConnectNamedPipe(): the overlapped object is not register into _cache if the overlapped object completed directly. Log also an error in debug mode in ProactorIocp._loop() if we get an unexpected event. Add a protection in ProactorIocp.close() to avoid blocking, even if it should not happen. I still don't understand exactly why some the completion of some overlapped objects are not notified. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| base_events.py | ||
| base_subprocess.py | ||
| constants.py | ||
| coroutines.py | ||
| events.py | ||
| futures.py | ||
| locks.py | ||
| log.py | ||
| proactor_events.py | ||
| protocols.py | ||
| queues.py | ||
| selector_events.py | ||
| streams.py | ||
| subprocess.py | ||
| tasks.py | ||
| test_utils.py | ||
| transports.py | ||
| unix_events.py | ||
| windows_events.py | ||
| windows_utils.py | ||