cpython/Include/cpython
T. Wouters 684e7af8cd
[3.13] gh-142183: Cache one datachunk per tstate to prevent alloc/dealloc thrashing (GH-145789) (#146123)
* gh-142183: Cache one datachunk per tstate to prevent alloc/dealloc thrashing (GH-145789) (#145828)

Cache one datachunk per tstate to prevent alloc/dealloc thrashing when repeatedly hitting the same call depth at exactly the wrong boundary.

Move new _ts member to the end to not mess up remote debuggers' ideas of the
struct's layout. (The struct is only created by the runtime, and the new
field only used by the runtime, so it should be safe.)

(cherry picked from commit 706fd4ec08)
(cherry picked from commit 19cbcc0f85)
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
2026-03-24 02:27:57 +01:00
..
abstract.h gh-112026: Restore removed private C API (#112115) 2023-11-15 16:38:31 +00:00
bytearrayobject.h gh-89653: PEP 670: Macros always cast arguments in cpython/ (#93766) 2022-06-13 20:09:40 +02:00
bytesobject.h [3.13] gh-121489: Export private _PyBytes_Join() again (GH-122267) (#122287) 2024-07-25 16:06:31 +00:00
cellobject.h gh-87347: Add parenthesis around PyXXX_Check() arguments (#92815) 2022-06-16 13:49:43 +02:00
ceval.h gh-106320: Remove private _PyEval function (#108433) 2023-08-24 20:25:22 +02:00
classobject.h gh-89653: PEP 670: Convert macros to functions (#99843) 2022-11-28 16:40:08 +01:00
code.h [3.13] GH-127953: Make line number lookup O(1) regardless of the size of the code object (#129127) 2025-04-07 20:15:02 +02:00
compile.h gh-117411: move PyFutureFeatures to pycore_symtable.h and make it private (#117412) 2024-04-02 10:34:49 +00:00
complexobject.h gh-112026: Restore removed private C API (#112115) 2023-11-15 16:38:31 +00:00
context.h gh-106320: Remove private _PyContext_NewHamtForTests() (#108434) 2023-08-24 19:37:41 +02:00
critical_section.h [3.13] gh-119344: Make critical section API public (GH-119353) (#120856) 2024-06-21 20:20:41 +00:00
descrobject.h gh-106320: Move _PyMethodWrapper_Type to internal C API (#107064) 2023-07-22 20:57:59 +00:00
dictobject.h gh-117657: Fixes a few small TSAN issues in dictobject (#118200) 2024-04-25 08:53:29 -07:00
fileobject.h gh-106320: Remove private _Py_UniversalNewlineFgetsWithSize() (#108602) 2023-08-29 02:36:50 +00:00
fileutils.h bpo-46303: Move fileutils.h private functions to internal C API (GH-30484) 2022-01-11 11:56:16 +01:00
floatobject.h gh-89653: PEP 670: Convert macros to functions (#99843) 2022-11-28 16:40:08 +01:00
frameobject.h gh-74929: Implement PEP 667 (GH-115153) 2024-05-04 12:12:10 +01:00
funcobject.h gh-118207: Rename the COMMON_FIELDS macro in funcobject.h and undef it after use (GH-118208) 2024-04-25 08:49:15 +02:00
genobject.h gh-106320: Move private _PyGen API to the internal C API (#107032) 2023-07-22 14:21:16 +00:00
import.h GH-108716: Turn off deep-freezing of code objects. (GH-108722) 2023-09-08 10:34:40 +01:00
initconfig.h [3.13] gh-130940: Remove PyConfig.use_system_logger (#131129) 2025-03-13 11:53:11 +08:00
listobject.h gh-112087: Make list_repr and list_length to be thread-safe (gh-114582) 2024-01-27 01:20:21 +09:00
lock.h [3.13] gh-136759: revert rename lock.h to pylock.h (GH-137041) (#137075) (#137166) 2025-07-28 12:19:32 +00:00
longintrepr.h gh-116869: Make C API compatible with ISO C90 (#116950) 2024-03-18 20:16:58 +01:00
longobject.h gh-121115: Skip __index__ in PyLong_AsNativeBytes by default (GH-121118) 2024-06-28 15:52:26 +00:00
memoryobject.h gh-106320: Remove private _PyManagedBuffer_Type (#108431) 2023-08-24 19:07:54 +02:00
methodobject.h gh-87347: Add parenthesis around PyXXX_Check() arguments (#92815) 2022-06-16 13:49:43 +02:00
modsupport.h [3.13] gh-112136: Restore removed _PyArg_Parser (GH-121262) (#121344) 2024-07-03 18:29:00 +00:00
monitoring.h [3.13] gh-118692: Avoid creating unnecessary StopIteration instances for monitoring (GH-119216) (#119497) 2024-05-24 10:18:13 +00:00
object.h [3.13] gh-127773: Disable attribute cache on incompatible MRO entries (GH-127924) (GH-143729) 2026-01-26 16:31:52 +01:00
objimpl.h gh-102013: Move PyUnstable_GC_VisitObjects() to Include/cpython/objimpl.h (#115560) 2024-02-16 15:49:13 +01:00
odictobject.h gh-87347: Add parenthesis around macro arguments (#93915) 2022-06-20 16:04:52 +02:00
picklebufobject.h gh-87347: Add parenthesis around PyXXX_Check() arguments (#92815) 2022-06-16 13:49:43 +02:00
pthread_stubs.h GH-110829: Ensure Thread.join() joins the OS thread (#110848) 2023-11-04 13:59:24 +00:00
pyatomic.h [3.13] gh-146227: Fix wrong type in _Py_atomic_load_uint16 in pyatomic_std.h (gh-146229) (#146233) 2026-03-20 20:08:29 +00:00
pyatomic_gcc.h [3.13] gh-121368: Fix seq lock memory ordering in _PyType_Lookup (GH-121388) (#121505) 2024-07-08 19:15:58 +00:00
pyatomic_msc.h [3.13] gh-121368: Fix seq lock memory ordering in _PyType_Lookup (GH-121388) (#121505) 2024-07-08 19:15:58 +00:00
pyatomic_std.h [3.13] gh-146227: Fix wrong type in _Py_atomic_load_uint16 in pyatomic_std.h (gh-146229) (#146233) 2026-03-20 20:08:29 +00:00
pyctype.h bpo-43816: Add extern "C" to Include/cpython/pyctype.h (GH-25365) 2021-04-13 13:27:21 +02:00
pydebug.h gh-77782: Deprecate global configuration variable (#93943) 2022-06-17 16:12:00 +02:00
pyerrors.h [3.13] gh-141732: Fix ExceptionGroup repr changing when original exception sequence is mutated (GH-141736) (#142391) 2025-12-08 18:46:55 +00:00
pyfpe.h bpo-35134: Move non-limited C API files to Include/cpython/ (GH-24561) 2021-02-19 15:55:46 +01:00
pyframe.h gh-74929: Implement PEP 667 (GH-115153) 2024-05-04 12:12:10 +01:00
pyhash.h [3.13] gh-111389: Add PyHASH_MULTIPLIER constant (GH-119214) (#119334) 2024-06-04 09:26:25 +02:00
pylifecycle.h gh-117649: Raise ImportError for unsupported modules in free-threaded build (#117651) 2024-04-11 15:00:54 -04:00
pymem.h gh-90815: Add mimalloc memory allocator (#109914) 2023-10-30 15:43:11 +00:00
pystate.h [3.13] gh-142183: Cache one datachunk per tstate to prevent alloc/dealloc thrashing (GH-145789) (#146123) 2026-03-24 02:27:57 +01:00
pystats.h [3.13] gh-127599: Fix _Py_RefcntAdd missing calls to _Py_INCREF_STAT_INC/_Py_INCREF_IMMORTAL_STAT_INC (GH-127717) (#128713) 2025-01-18 19:00:46 +02:00
pythonrun.h gh-106320: Remove private pythonrun API (#108599) 2023-08-29 04:18:52 +02:00
pythread.h [3.13] gh-129296: Fix pyatomic.h include paths (GH-129320) (#130667) 2025-02-28 08:22:15 +00:00
pytime.h gh-110850: Add PyTime_TimeRaw() function (#118394) 2024-05-01 18:05:01 +00:00
setobject.h gh-112069: Make PySet_GET_SIZE to be atomic safe. (gh-118053) 2024-04-19 06:40:28 +09:00
sysmodule.h gh-106560: Fix redundant declarations in Include/ (#112611) 2023-12-03 12:16:31 +01:00
traceback.h gh-106320: Remove private _PyTraceback functions (#108453) 2023-08-24 23:35:47 +00:00
tracemalloc.h [3.13] Add extern "C" around PyTraceMalloc_ functions. (GH-127772) (#127815) 2024-12-11 14:07:44 +01:00
tupleobject.h gh-106320: Remove _PyTuple_MaybeUntrack() C API (#107143) 2023-07-23 19:16:21 +00:00
unicodeobject.h gh-112026: Restore removed private C API (#112115) 2023-11-15 16:38:31 +00:00
warnings.h [3.13] gh-139640: Fix swallowing syntax warnings in different modules (GH-139755) (GH-140119) 2025-10-14 15:46:11 +00:00
weakrefobject.h [3.13] gh-117511: Make PyMutex public in the non-limited API (GH-117731) (#120800) 2024-06-20 16:00:25 +00:00