Staging
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
Raw File
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)
Tip revision: 749afe8
.hgignore
.gdb_history
.purify
.svn/
^.idea/
^.vscode/
.DS_Store
Makefile$
Makefile.pre$
TAGS$
autom4te.cache$
^build/
^Doc/build/
^Doc/venv/
buildno$
config.cache
config.log
config.status
config.status.lineno
db_home
platform$
pyconfig.h$
python$
python.bat$
python.exe$
python-config$
python-config.py$
reflog.txt$
tags$
Misc/python.pc
Misc/python-config.sh$
Modules/Setup$
Modules/Setup.config
Modules/Setup.local
Modules/config.c
Modules/ld_so_aix$
Parser/pgen$
^lcov-report/
^core
^python-gdb.py
^python.exe-gdb.py
^pybuilddir.txt

syntax: glob
libpython*.a
libpython*.so*
libpython*.dylib
*.swp
*.o
*.pyc
*.pyo
*.pyd
*.cover
*~
*.gc??
*.profclang?
*.profraw
*.dyn
Include/pydtrace_probes.h
Lib/distutils/command/*.pdb
Lib/lib2to3/*.pickle
Lib/test/data/*
Misc/*.wpu
PC/python_nt*.h
PC/pythonnt_rc*.h
PC/*/*.exe
PC/*/*.exp
PC/*/*.lib
PC/*/*.bsc
PC/*/*.dll
PC/*/*.pdb
PC/*/*.user
PC/*/*.ncb
PC/*/*.suo
PC/*/Win32-temp-*
PC/*/x64-temp-*
PC/*/amd64
PCbuild/*.user
PCbuild/*.suo
PCbuild/*.*sdf
PCbuild/*-pgi
PCbuild/*-pgo
PCbuild/.vs
PCbuild/amd64
PCbuild/obj
PCbuild/win32
Tools/unicode/build/
Tools/unicode/MAPPINGS/
BuildLog.htm
__pycache__
Programs/_freeze_importlib
Programs/_testembed
.coverage
coverage/
externals/
htmlcov/
*.gcda
*.gcno
*.gcov
ipch/
coverage.info
Tools/msi/obj
Tools/ssl/amd64
Tools/ssl/win32
.vs/
.vscode/
back to top