mirror of https://github.com/python/cpython
ee7d2681f6
The `_PyThreadState_Bind()` function is called before the first
`PyEval_AcquireThread()` so it's not synchronized with the stop the
world GC. We had a race where `gc_visit_heaps()` might visit a thread's
heap while it's being initialized.
Use a simple atomic int to avoid visiting heaps for threads that are not
yet fully initialized (i.e., before `tstate_mimalloc_bind()` is called).
The race was reproducible by running:
`python Lib/test/test_importlib/partial/pool_in_threads.py`.
(cherry picked from commit
|
||
---|---|---|
.. | ||
build | ||
buildbot | ||
c-analyzer | ||
cases_generator | ||
clinic | ||
freeze | ||
gdb | ||
i18n | ||
importbench | ||
jit | ||
lockbench | ||
msi | ||
nuget | ||
patchcheck | ||
peg_generator | ||
scripts | ||
ssl | ||
tsan | ||
tz | ||
unicode | ||
unittestgui | ||
wasm | ||
README | ||
requirements-dev.txt | ||
requirements-hypothesis.txt |
README
This directory contains a number of Python programs that are useful while building or extending Python. build Automatically generated directory by the build system contain build artifacts and intermediate files. buildbot Batchfiles for running on Windows buildbot workers. c-analyzer Tools to check no new global variables have been added. cases_generator Tooling to generate interpreters. clinic A preprocessor for CPython C files in order to automate the boilerplate involved with writing argument parsing code for "builtins". freeze Create a stand-alone executable from a Python program. gdb Python code to be run inside gdb, to make it easier to debug Python itself (by David Malcolm). i18n Tools for internationalization. pygettext.py parses Python source code and generates .pot files, and msgfmt.py generates a binary message catalog from a catalog in text format. importbench A set of micro-benchmarks for various import scenarios. msi Support for packaging Python as an MSI package on Windows. nuget Files for the NuGet package manager for .NET. patchcheck Tools for checking and applying patches to the Python source code and verifying the integrity of patch files. peg_generator PEG-based parser generator (pegen) used for new parser. scripts A number of useful single-file programs, e.g. run_tests.py which runs the Python test suite. ssl Scripts to generate ssl_data.h from OpenSSL sources, and run tests against multiple installations of OpenSSL and LibreSSL. tz A script to dump timezone from /usr/share/zoneinfo. unicode Tools for generating unicodedata and codecs from unicode.org and other mapping files (by Fredrik Lundh, Marc-Andre Lemburg and Martin von Loewis). unittestgui A Tkinter based GUI test runner for unittest, with test discovery. wasm Config and helpers to facilitate cross compilation of CPython to WebAssembly (WASM). Note: The pynche color editor has moved to https://gitlab.com/warsaw/pynche