summaryrefslogtreecommitdiff
path: root/Include/pycapsule.h
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-07-28 00:18:43 +0200
committerVictor Stinner <victor.stinner@gmail.com>2014-07-28 00:18:43 +0200
commite218a6def33c8b2156ee034d0c15b5f60082c471 (patch)
tree164c2db41c7786efeda1d107bad6da3fd30d03a4 /Include/pycapsule.h
parenta696ea1d6b25ba124803fe724f906c23ab6e7e9a (diff)
downloadcpython-e218a6def33c8b2156ee034d0c15b5f60082c471.tar.gz
asyncio, tulip issue 196: ProactorIocp._register() now registers the overlapped
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.
Diffstat (limited to 'Include/pycapsule.h')
0 files changed, 0 insertions, 0 deletions