Staging
v0.8.1
https://github.com/python/cpython
Revision 6eb2878e42152e9c45d7ee5e6f889532d753e67c authored by Miss Islington (bot) on 13 June 2019, 12:22:20 UTC, committed by Victor Stinner on 13 June 2019, 12:22:20 UTC
* bpo-36402: Fix threading._shutdown() race condition (GH-13948)

Fix a race condition at Python shutdown when waiting for threads.
Wait until the Python thread state of all non-daemon threads get
deleted (join all non-daemon threads), rather than just wait until
Python threads complete.

* Add threading._shutdown_locks: set of Thread._tstate_lock locks
  of non-daemon threads used by _shutdown() to wait until all Python
  thread states get deleted. See Thread._set_tstate_lock().
* Add also threading._shutdown_locks_lock to protect access to
  threading._shutdown_locks.
* Add test_finalization_shutdown() test.

(cherry picked from commit 468e5fec8a2f534f1685d59da3ca4fad425c38dd)

* bpo-36402: Fix threading.Thread._stop() (GH-14047)

Remove the _tstate_lock from _shutdown_locks, don't remove None.

(cherry picked from commit 6f75c873752a16a7ad8f35855b1e29f59d048e84)
(cherry picked from commit e40a97a721d46307dfdc2b0322028ccded6eb571)

Co-authored-by: Victor Stinner <vstinner@redhat.com>
1 parent b4c8ef7
History
Tip revision: 6eb2878e42152e9c45d7ee5e6f889532d753e67c authored by Miss Islington (bot) on 13 June 2019, 12:22:20 UTC
bpo-36402: Fix threading._shutdown() race condition (GH-13948) (GH-14050) (GH-14054)
Tip revision: 6eb2878
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-- 5.9 KB
_decimal.vcxproj.filters -rw-r--r-- 4.3 KB
_elementtree.vcxproj -rw-r--r-- 4.4 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.2 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.1 KB
_msi.vcxproj.filters -rw-r--r-- 423 bytes
_multiprocessing.vcxproj -rw-r--r-- 3.3 KB
_multiprocessing.vcxproj.filters -rw-r--r-- 861 bytes
_overlapped.vcxproj -rw-r--r-- 3.1 KB
_overlapped.vcxproj.filters -rw-r--r-- 434 bytes
_queue.vcxproj -rw-r--r-- 3.0 KB
_queue.vcxproj.filters -rw-r--r-- 518 bytes
_socket.vcxproj -rw-r--r-- 3.2 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.6 KB
_ssl.vcxproj.filters -rw-r--r-- 620 bytes
_testbuffer.vcxproj -rw-r--r-- 3.0 KB
_testbuffer.vcxproj.filters -rw-r--r-- 435 bytes
_testcapi.vcxproj -rw-r--r-- 3.0 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.0 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-- 4.5 KB
_tkinter.vcxproj.filters -rw-r--r-- 534 bytes
build.bat -rw-r--r-- 5.9 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-- 3.3 KB
find_python.bat -rw-r--r-- 3.0 KB
fix_encoding.py -rw-r--r-- 952 bytes
get_external.py -rw-r--r-- 1.8 KB
get_externals.bat -rw-r--r-- 4.0 KB
idle.bat -rw-r--r-- 296 bytes
lib.pyproj -rw-r--r-- 89.5 KB
liblzma.vcxproj -rw-r--r-- 13.1 KB
openssl.props -rw-r--r-- 1.5 KB
openssl.vcxproj -rw-r--r-- 5.7 KB
pcbuild.proj -rw-r--r-- 5.9 KB
pcbuild.sln -rw-r--r-- 57.9 KB
prepare_ssl.bat -rw-r--r-- 2.1 KB
prepare_ssl.py -rw-r--r-- 6.7 KB
prepare_tcltk.bat -rw-r--r-- 1.9 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-- 11.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.4 KB
python.vcxproj -rw-r--r-- 5.0 KB
python.vcxproj.filters -rw-r--r-- 824 bytes
python3dll.vcxproj -rw-r--r-- 6.6 KB
python3dll.vcxproj.filters -rw-r--r-- 1.2 KB
python_uwp.vcxproj -rw-r--r-- 3.3 KB
pythoncore.vcxproj -rw-r--r-- 23.8 KB
pythoncore.vcxproj.filters -rw-r--r-- 34.2 KB
pythonw.vcxproj -rw-r--r-- 3.0 KB
pythonw.vcxproj.filters -rw-r--r-- 702 bytes
pythonw_uwp.vcxproj -rw-r--r-- 3.3 KB
pywlauncher.vcxproj -rw-r--r-- 3.2 KB
pywlauncher.vcxproj.filters -rw-r--r-- 1.2 KB
readme.txt -rw-r--r-- 10.9 KB
rmpyc.py -rw-r--r-- 409 bytes
rt.bat -rw-r--r-- 2.0 KB
select.vcxproj -rw-r--r-- 3.1 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
tcl.vcxproj -rw-r--r-- 3.0 KB
tcltk.props -rw-r--r-- 3.2 KB
tix.vcxproj -rw-r--r-- 3.9 KB
tk.vcxproj -rw-r--r-- 3.2 KB
unicodedata.vcxproj -rw-r--r-- 3.1 KB
unicodedata.vcxproj.filters -rw-r--r-- 810 bytes
urlretrieve.py -rw-r--r-- 1.2 KB
venvlauncher.vcxproj -rw-r--r-- 3.3 KB
venvwlauncher.vcxproj -rw-r--r-- 3.3 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

readme.txt

back to top