Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision 749afe81ec0a4b92ad6b89a67c82f2c04f79c5ac authored by CtrlZvi on 25 May 2018, 08:03:25 UTC, committed by Andrew Svetlov on 25 May 2018, 08:03:25 UTC
The proactor event loop has a race condition when reading with pausing/resuming. `resume_reading()` unconditionally schedules the read function to read from the current future. If `resume_reading()` was called before the previously scheduled done callback fires, this results in two attempts to get the data from the most recent read and an assertion failure. This commit tracks whether or not `resume_reading` needs to reschedule the callback to restart the loop, preventing a second attempt to read the data.. (cherry picked from commit 4151061855b571bf8a7579daa7875b8e243057b9) Co-authored-by: CtrlZvi <viz+github@flippedperspective.com>
1 parent 36f066a
Tip revision: 749afe81ec0a4b92ad6b89a67c82f2c04f79c5ac authored by CtrlZvi on 25 May 2018, 08:03:25 UTC
[3.6] bpo-26819: Prevent proactor double read on resume (GH-6921) (#7110)
[3.6] bpo-26819: Prevent proactor double read on resume (GH-6921) (#7110)
Tip revision: 749afe8
File | Mode | Size |
---|---|---|
_asyncio.vcxproj | -rw-r--r-- | 3.0 KB |
_asyncio.vcxproj.filters | -rw-r--r-- | 520 bytes |
_bz2.vcxproj | -rw-r--r-- | 3.9 KB |
_bz2.vcxproj.filters | -rw-r--r-- | 1.7 KB |
_ctypes.vcxproj | -rw-r--r-- | 4.7 KB |
_ctypes.vcxproj.filters | -rw-r--r-- | 2.3 KB |
_ctypes_test.vcxproj | -rw-r--r-- | 3.1 KB |
_ctypes_test.vcxproj.filters | -rw-r--r-- | 718 bytes |
_decimal.vcxproj | -rw-r--r-- | 6.0 KB |
_decimal.vcxproj.filters | -rw-r--r-- | 4.3 KB |
_distutils_findvs.vcxproj | -rw-r--r-- | 3.4 KB |
_distutils_findvs.vcxproj.filters | -rw-r--r-- | 510 bytes |
_elementtree.vcxproj | -rw-r--r-- | 4.5 KB |
_elementtree.vcxproj.filters | -rw-r--r-- | 2.6 KB |
_freeze_importlib.vcxproj | -rw-r--r-- | 5.2 KB |
_freeze_importlib.vcxproj.filters | -rw-r--r-- | 1.1 KB |
_hashlib.vcxproj | -rw-r--r-- | 3.8 KB |
_hashlib.vcxproj.filters | -rw-r--r-- | 436 bytes |
_lzma.vcxproj | -rw-r--r-- | 3.7 KB |
_lzma.vcxproj.filters | -rw-r--r-- | 435 bytes |
_msi.vcxproj | -rw-r--r-- | 3.2 KB |
_msi.vcxproj.filters | -rw-r--r-- | 423 bytes |
_multiprocessing.vcxproj | -rw-r--r-- | 3.4 KB |
_multiprocessing.vcxproj.filters | -rw-r--r-- | 861 bytes |
_overlapped.vcxproj | -rw-r--r-- | 3.2 KB |
_overlapped.vcxproj.filters | -rw-r--r-- | 434 bytes |
_socket.vcxproj | -rw-r--r-- | 3.3 KB |
_socket.vcxproj.filters | -rw-r--r-- | 702 bytes |
_sqlite3.vcxproj | -rw-r--r-- | 4.5 KB |
_sqlite3.vcxproj.filters | -rw-r--r-- | 2.4 KB |
_ssl.vcxproj | -rw-r--r-- | 3.9 KB |
_ssl.vcxproj.filters | -rw-r--r-- | 428 bytes |
_testbuffer.vcxproj | -rw-r--r-- | 3.1 KB |
_testbuffer.vcxproj.filters | -rw-r--r-- | 435 bytes |
_testcapi.vcxproj | -rw-r--r-- | 3.1 KB |
_testcapi.vcxproj.filters | -rw-r--r-- | 439 bytes |
_testconsole.vcxproj | -rw-r--r-- | 3.2 KB |
_testconsole.vcxproj.filters | -rw-r--r-- | 952 bytes |
_testembed.vcxproj | -rw-r--r-- | 3.1 KB |
_testembed.vcxproj.filters | -rw-r--r-- | 948 bytes |
_testimportmultiple.vcxproj | -rw-r--r-- | 3.2 KB |
_testimportmultiple.vcxproj.filters | -rw-r--r-- | 444 bytes |
_testmultiphase.vcxproj | -rw-r--r-- | 3.2 KB |
_testmultiphase.vcxproj.filters | -rw-r--r-- | 952 bytes |
_tkinter.vcxproj | -rw-r--r-- | 3.9 KB |
_tkinter.vcxproj.filters | -rw-r--r-- | 534 bytes |
build.bat | -rw-r--r-- | 5.4 KB |
build_env.bat | -rw-r--r-- | 25 bytes |
clean.bat | -rw-r--r-- | 128 bytes |
env.bat | -rw-r--r-- | 712 bytes |
field3.py | -rw-r--r-- | 974 bytes |
find_msbuild.bat | -rw-r--r-- | 2.4 KB |
find_python.bat | -rw-r--r-- | 3.0 KB |
get_external.py | -rw-r--r-- | 1.8 KB |
get_externals.bat | -rw-r--r-- | 3.4 KB |
idle.bat | -rw-r--r-- | 296 bytes |
libeay.vcxproj | -rw-r--r-- | 45.3 KB |
liblzma.vcxproj | -rw-r--r-- | 13.0 KB |
openssl.props | -rw-r--r-- | 3.5 KB |
pcbuild.proj | -rw-r--r-- | 5.5 KB |
pcbuild.sln | -rw-r--r-- | 59.0 KB |
prepare_ssl.bat | -rw-r--r-- | 269 bytes |
prepare_ssl.py | -rw-r--r-- | 6.3 KB |
pyexpat.vcxproj | -rw-r--r-- | 3.6 KB |
pyexpat.vcxproj.filters | -rw-r--r-- | 1.2 KB |
pylauncher.vcxproj | -rw-r--r-- | 3.2 KB |
pylauncher.vcxproj.filters | -rw-r--r-- | 1.2 KB |
pyproject.props | -rw-r--r-- | 10.4 KB |
pyshellext.vcxproj | -rw-r--r-- | 3.4 KB |
pyshellext.vcxproj.filters | -rw-r--r-- | 1.4 KB |
python.props | -rw-r--r-- | 12.0 KB |
python.vcxproj | -rw-r--r-- | 5.0 KB |
python.vcxproj.filters | -rw-r--r-- | 824 bytes |
python3dll.vcxproj | -rw-r--r-- | 5.8 KB |
python3dll.vcxproj.filters | -rw-r--r-- | 1.2 KB |
pythoncore.vcxproj | -rw-r--r-- | 21.6 KB |
pythoncore.vcxproj.filters | -rw-r--r-- | 32.5 KB |
pythonw.vcxproj | -rw-r--r-- | 3.0 KB |
pythonw.vcxproj.filters | -rw-r--r-- | 702 bytes |
pywlauncher.vcxproj | -rw-r--r-- | 3.2 KB |
pywlauncher.vcxproj.filters | -rw-r--r-- | 1.2 KB |
readme.txt | -rw-r--r-- | 12.7 KB |
rmpyc.py | -rw-r--r-- | 409 bytes |
rt.bat | -rw-r--r-- | 2.0 KB |
select.vcxproj | -rw-r--r-- | 3.2 KB |
select.vcxproj.filters | -rw-r--r-- | 436 bytes |
sqlite3.vcxproj | -rw-r--r-- | 4.1 KB |
sqlite3.vcxproj.filters | -rw-r--r-- | 804 bytes |
ssleay.vcxproj | -rw-r--r-- | 4.8 KB |
tcl.vcxproj | -rw-r--r-- | 3.6 KB |
tcltk.props | -rw-r--r-- | 3.2 KB |
tix.vcxproj | -rw-r--r-- | 3.5 KB |
tk.vcxproj | -rw-r--r-- | 3.7 KB |
unicodedata.vcxproj | -rw-r--r-- | 3.2 KB |
unicodedata.vcxproj.filters | -rw-r--r-- | 810 bytes |
urlretrieve.py | -rw-r--r-- | 1.2 KB |
winsound.vcxproj | -rw-r--r-- | 3.1 KB |
winsound.vcxproj.filters | -rw-r--r-- | 500 bytes |
xxlimited.vcxproj | -rw-r--r-- | 3.2 KB |
xxlimited.vcxproj.filters | -rw-r--r-- | 433 bytes |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...