cpython/Python
Sam Gross a3c031884d
gh-112723: Call PyThreadState_Clear() from the correct interpreter (#112776)
The `PyThreadState_Clear()` function must only be called with the GIL
held and must be called from the same interpreter as the passed in
thread state. Otherwise, any Python objects on the thread state may be
destroyed using the wrong interpreter, leading to memory corruption.

This is also important for `Py_GIL_DISABLED` builds because free lists
will be associated with PyThreadStates and cleared in
`PyThreadState_Clear()`.

This fixes two places that called `PyThreadState_Clear()` from the wrong
interpreter and adds an assertion to `PyThreadState_Clear()`.
2023-12-12 17:20:21 -07:00
..
clinic bpo-34392: Add sys. _is_interned() (GH-8755) 2023-12-04 11:09:06 +02:00
deepfreeze
frozen_modules
_warnings.c gh-111789: Use PyDict_GetItemRef() in Python/_warnings.c (gh-112080) 2023-11-27 18:58:43 +01:00
abstract_interp_cases.c.h GH-111485: Separate out parsing, analysis and code-gen phases of tier 1 code generator (GH-112299) 2023-12-07 12:49:40 +00:00
adaptive.md
asdl.c
asm_trampoline.S
assemble.c
ast.c gh-109341: Fix crash on compiling invalid AST including TypeAlias (#109349) 2023-09-13 09:00:39 -07:00
ast_opt.c gh-111133: Remove unnecessary PyFrozenSet_Check() calls in const folding (GH-111137) 2023-10-20 23:37:38 +03:00
ast_unparse.c
bltinmodule.c gh-90350: Optimize builtin functions min() and max() (GH-30286) 2023-12-11 21:27:06 +02:00
bootstrap_hash.c gh-110014: Fix bootstrap_hash.c: remove debug code (#110161) 2023-09-30 22:21:20 +00:00
bytecodes.c GH-108866: Guarantee forward progress in executors. (GH-113006) 2023-12-12 19:02:24 +00:00
ceval.c A smattering of cleanups in uop debug output and lltrace (#112980) 2023-12-11 16:42:30 -08:00
ceval_gil.c gh-112723: Call PyThreadState_Clear() from the correct interpreter (#112776) 2023-12-12 17:20:21 -07:00
ceval_macros.h gh-113010: Don't decrement deferred in pystats (#113032) 2023-12-12 21:17:08 +00:00
codecs.c gh-111972: Make Unicode name C APIcapsule initialization thread-safe (#112249) 2023-11-30 11:12:49 +01:00
compile.c gh-99606: Make code generated for an empty f-string identical to that of a normal empty string (#112407) 2023-11-26 17:13:57 +00:00
condvar.h gh-110014: Fix _POSIX_THREADS and _POSIX_SEMAPHORES usage (#110139) 2023-09-30 19:25:54 +02:00
context.c
critical_section.c gh-111569: Implement Python critical section API (gh-111571) 2023-11-08 15:39:29 -07:00
crossinterp.c gh-76785: Show the Traceback for Uncaught Subinterpreter Exceptions (gh-113034) 2023-12-13 00:00:54 +00:00
dtoa.c gh-111962: Make dtoa thread-safe in --disable-gil builds. (#112049) 2023-12-07 13:47:55 +00:00
dup2.c
dynamic_annotations.c
dynload_hpux.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_shlib.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_stub.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_win.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
emscripten_signal.c GH-108614: Unbreak emscripten build (GH-109132) 2023-09-08 17:54:45 +01:00
emscripten_trampoline.c gh-106213: Make Emscripten trampolines work with JSPI (GH-106219) 2023-09-15 15:04:21 -07:00
errors.c gh-76785: Move _Py_excinfo Functions Out of the Internal C-API (gh-111715) 2023-11-06 11:09:22 -07:00
executor_cases.c.h GH-111485: Factor out tier 2 code generation from the rest of the interpreter code generator (GH-112968) 2023-12-12 12:12:17 +00:00
fileutils.c gh-112970: Detect and use closefrom() when available (#112969) 2023-12-12 11:25:27 +01:00
flowgraph.c gh-112519: Make it possible to specify instruction flags for pseudo instructions in bytecodes.c (#112520) 2023-11-30 11:03:30 +00:00
formatter_unicode.c
frame.c gh-109094: replace frame->prev_instr by frame->instr_ptr (#109095) 2023-10-26 13:43:10 +00:00
frozen.c gh-106560: Fix redundant declarations in Python/frozen.c (#112612) 2023-12-03 12:18:24 +01:00
frozenmain.c gh-110014: Include explicitly <unistd.h> header (#110155) 2023-09-30 20:06:45 +00:00
future.c
generated_cases.c.h GH-108866: Guarantee forward progress in executors. (GH-113006) 2023-12-12 19:02:24 +00:00
getargs.c gh-65210: Add const qualifiers in PyArg_VaParseTupleAndKeywords() (GH-105958) 2023-12-04 13:14:56 +02:00
getcompiler.c
getcopyright.c
getopt.c gh-110079: Remove extern "C" { ...} in C code (#110080) 2023-09-29 10:56:49 +02:00
getplatform.c
getversion.c
hamt.c
hashtable.c gh-111545: Add Py_HashPointer() function (#112096) 2023-12-06 15:09:22 +01:00
import.c gh-111924: Use PyMutex for Runtime-global Locks. (gh-112207) 2023-12-07 12:33:40 -07:00
importdl.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
initconfig.c gh-112730: Use color to highlight error locations (gh-112732) 2023-12-06 23:29:54 +01:00
instrumentation.c gh-103615: Use local events for opcode tracing (GH-109472) 2023-11-03 16:39:50 +00:00
intrinsics.c gh-107149: make new opcode util functions private rather than public and unstable (#112042) 2023-11-14 00:31:02 +00:00
legacy_tracing.c gh-103615: Use local events for opcode tracing (GH-109472) 2023-11-03 16:39:50 +00:00
lock.c gh-111863: Rename Py_NOGIL to Py_GIL_DISABLED (#111864) 2023-11-20 15:52:00 +02:00
marshal.c
modsupport.c gh-84489: Properly handle trailing spaces in Py_BuildValue() format strings (GH-21158) 2023-10-11 14:44:06 +03:00
mysnprintf.c
mystrtoul.c gh-108765: Python.h no longer includes <ctype.h> (#108831) 2023-09-03 18:54:27 +02:00
opcode_targets.h gh-111354: Simplify _PyGen_yf by moving some of its work to the compiler and frame state (#111648) 2023-11-03 10:01:36 +00:00
optimizer.c gh-112320: Implement on-trace confidence tracking for branches (#112321) 2023-12-12 21:43:08 +00:00
optimizer_analysis.c A smattering of cleanups in uop debug output and lltrace (#112980) 2023-12-11 16:42:30 -08:00
parking_lot.c gh-112606: Use sem_clockwait with monotonic time when supported in parking_lot.c (gh-112733) 2023-12-06 15:54:57 +09:00
pathconfig.c gh-110079: Remove extern "C" { ...} in C code (#110080) 2023-09-29 10:56:49 +02:00
perf_trampoline.c gh-112367: Only free perf trampoline arenas at shutdown (#112368) 2023-12-01 13:20:51 +00:00
preconfig.c
pyarena.c
pyctype.c
pyfpe.c
pyhash.c gh-111545: Add Py_HashPointer() function (#112096) 2023-12-06 15:09:22 +01:00
pylifecycle.c gh-112723: Call PyThreadState_Clear() from the correct interpreter (#112776) 2023-12-12 17:20:21 -07:00
pymath.c
pystate.c gh-112723: Call PyThreadState_Clear() from the correct interpreter (#112776) 2023-12-12 17:20:21 -07:00
pystrcmp.c
pystrhex.c
pystrtod.c gh-108765: Cleanup #include in Python/*.c files (#108977) 2023-09-06 15:56:08 +02:00
Python-ast.c gh-111956: Add thread-safe one-time initialization. (gh-111960) 2023-11-16 12:19:54 -07:00
Python-tokenize.c gh-112943: Correctly compute end offsets for multiline tokens in the tokenize module (#112949) 2023-12-11 11:44:22 +00:00
pythonrun.c gh-108082: Use PyErr_FormatUnraisable() (GH-111580) 2023-11-02 09:16:34 +00:00
pytime.c gh-112567: Add _PyTimeFraction C API (#112568) 2023-12-01 19:50:10 +01:00
README
specialize.c gh-112320: Implement on-trace confidence tracking for branches (#112321) 2023-12-12 21:43:08 +00:00
stdlib_module_names.h gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
structmember.c
suggestions.c gh-108511: Add C API functions which do not silently ignore errors (GH-109025) 2023-09-17 14:23:31 +03:00
symtable.c gh-111789: Use PyDict_GetItemRef() in Python/symtable.c (gh-112084) 2023-11-27 18:55:30 +01:00
sysmodule.c gh-111924: Use PyMutex for Runtime-global Locks. (gh-112207) 2023-12-07 12:33:40 -07:00
thread.c gh-84570: Add Timeouts to SendChannel.send() and RecvChannel.recv() (gh-110567) 2023-10-17 23:05:49 +00:00
thread_nt.h GH-110829: Ensure Thread.join() joins the OS thread (#110848) 2023-11-04 13:59:24 +00:00
thread_pthread.h gh-81925: Implement native thread ids for kFreeBSD (#111761) 2023-11-09 21:02:30 +01:00
thread_pthread_stubs.h GH-110829: Ensure Thread.join() joins the OS thread (#110848) 2023-11-04 13:59:24 +00:00
traceback.c Remove dead code left after gh-110721 (#111905) 2023-11-10 22:30:01 +00:00
tracemalloc.c gh-108765: Cleanup #include in Python/*.c files (#108977) 2023-09-06 15:56:08 +02:00
vm-state.md High level docs for the VM state (#111621) 2023-11-01 22:55:10 +00:00

Miscellaneous source files for the main Python shared library