cpython/Python
Brett Simmers 853163d3b5
gh-116322: Enable the GIL while loading C extension modules (#118560)
Add the ability to enable/disable the GIL at runtime, and use that in
the C module loading code.

We can't know before running a module init function if it supports
free-threading, so the GIL is temporarily enabled before doing so. If
the module declares support for running without the GIL, the GIL is
later disabled. Otherwise, the GIL is permanently enabled, and will
never be disabled again for the life of the current interpreter.
2024-05-06 23:07:23 -04:00
..
clinic gh-111201: A new Python REPL (GH-111567) 2024-05-05 21:32:23 +02:00
frozen_modules
_warnings.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
adaptive.md
asdl.c
asm_trampoline.S
assemble.c gh-117494: extract the Instruction Sequence data structure into a separate file (#117496) 2024-04-04 15:47:26 +00:00
ast.c gh-116126: Implement PEP 696 (#116129) 2024-05-03 06:17:32 -07:00
ast_opt.c
ast_unparse.c
bltinmodule.c gh-118527: Intern code consts in free-threaded build (#118667) 2024-05-06 20:12:39 -04:00
bootstrap_hash.c
brc.c gh-110481: Fix biased reference counting queue initialization. (#117271) 2024-03-28 09:28:39 -04:00
bytecodes.c GH-115709: Invalidate executors when a local variable is changed via frame.f_locals (#118639) 2024-05-06 21:21:06 +00:00
ceval.c gh-118613: Fix error handling of _PyEval_GetFrameLocals in ceval.c (#118614) 2024-05-06 10:34:56 +03:00
ceval_gil.c gh-116322: Enable the GIL while loading C extension modules (#118560) 2024-05-06 23:07:23 -04:00
ceval_macros.h gh-107674: Improve performance of sys.settrace (GH-117133) 2024-05-03 19:49:24 +01:00
codecs.c gh-116738: Make _codecs module thread-safe (#117530) 2024-05-02 18:25:36 -04:00
compile.c gh-118465: Add __firstlineno__ attribute to class (GH-118475) 2024-05-06 12:02:37 +03:00
condvar.h gh-104530: Enable native Win32 condition variables by default (GH-104531) 2024-02-02 13:50:51 +00:00
config_common.h gh-76785: Add PyInterpreterConfig Helpers (gh-117170) 2024-04-02 20:35:52 +00:00
context.c gh-111968: Split _Py_dictkeys_freelist out of _Py_dict_freelist (gh-115505) 2024-02-16 01:01:36 +00:00
critical_section.c
crossinterp.c gh-76785: Handle Legacy Interpreters Properly (gh-117490) 2024-04-11 23:23:25 +00:00
crossinterp_data_lookup.h gh-76785: Improved Subinterpreters Compatibility with 3.12 (gh-115424) 2024-02-13 14:56:49 -07:00
crossinterp_exceptions.h gh-76785: Add More Tests to test_interpreters.test_api (gh-117662) 2024-04-10 18:37:01 -06:00
dtoa.c gh-91565: Replace bugs.python.org links with Devguide/GitHub ones (GH-91568) 2024-04-01 13:02:07 +00:00
dup2.c
dynamic_annotations.c
dynload_hpux.c
dynload_shlib.c
dynload_stub.c
dynload_win.c
emscripten_signal.c
emscripten_trampoline.c
errors.c gh-118379: Use PyTuple_Pack instead of Py_BuildValue if possible (GH-118381) 2024-04-30 17:55:15 +03:00
executor_cases.c.h GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322) 2024-05-04 12:11:11 +01:00
fileutils.c gh-118422: Fix run_fileexflags() test (#118429) 2024-04-30 22:32:55 +02:00
flowgraph.c gh-117494: extract the Instruction Sequence data structure into a separate file (#117496) 2024-04-04 15:47:26 +00:00
formatter_unicode.c
frame.c gh-118272: set stacktop to 0 before freeing contents, to avoid access to invalid objects during GC (#118478) 2024-05-01 21:51:40 +01:00
frozen.c gh-108716: Cleanup remaining deepfreeze infrastructure (#116919) 2024-03-18 11:13:11 -07:00
frozenmain.c gh-105716: Fix _PyInterpreterState_IsRunningMain() For Embedders (gh-117140) 2024-03-21 18:20:20 -06:00
future.c gh-118216: Don't consider dotted __future__ imports (#118267) 2024-05-02 06:32:20 -07:00
gc.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
gc_free_threading.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
gc_gil.c gh-111968: Rename freelist related struct names to Eric's suggestion (gh-115329) 2024-02-14 00:32:51 +00:00
generated_cases.c.h GH-115709: Invalidate executors when a local variable is changed via frame.f_locals (#118639) 2024-05-06 21:21:06 +00:00
getargs.c gh-68114: Fix handling for removed PyArg_ParseTuple 'w' formatters (GH-8204) 2024-04-23 13:15:15 +02:00
getcompiler.c
getcopyright.c
getopt.c
getplatform.c
getversion.c
hamt.c
hashtable.c
import.c gh-116322: Enable the GIL while loading C extension modules (#118560) 2024-05-06 23:07:23 -04:00
importdl.c gh-117953: Track Extra Details in Global Extensions Cache (gh-118532) 2024-05-04 21:24:02 +00:00
initconfig.c gh-118518: Correct type of perf_profiling in config (#118646) 2024-05-06 15:30:30 +01:00
instruction_sequence.c gh-117680: Fix msvc warning in instruction_sequence.c (#118326) 2024-04-26 17:20:30 +01:00
instrumentation.c gh-118415: Fix issues with local tracing being enabled/disabled on a function (#118496) 2024-05-06 13:06:09 -07:00
interpconfig.c gh-76785: Fix a Refleak in _interpreters.new_config() (gh-117491) 2024-04-03 01:10:26 +00:00
intrinsics.c gh-74929: Implement PEP 667 (GH-115153) 2024-05-04 12:12:10 +01:00
jit.c GH-113464: Generate a more efficient JIT (GH-118512) 2024-05-03 16:41:07 -07:00
legacy_tracing.c gh-107674: Lazy load line number to improve performance of tracing (GH-118127) 2024-04-29 09:54:52 +01:00
lock.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
marshal.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
modsupport.c
mysnprintf.c
mystrtoul.c
object_stack.c gh-111968: Split _Py_dictkeys_freelist out of _Py_dict_freelist (gh-115505) 2024-02-16 01:01:36 +00:00
opcode_targets.h GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322) 2024-05-04 12:11:11 +01:00
optimizer.c GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322) 2024-05-04 12:11:11 +01:00
optimizer_analysis.c gh-118335: Configure Tier 2 interpreter at build time (#118339) 2024-04-30 18:26:34 -07:00
optimizer_bytecodes.c GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322) 2024-05-04 12:11:11 +01:00
optimizer_cases.c.h GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322) 2024-05-04 12:11:11 +01:00
optimizer_symbols.c GH-118095: Unify the behavior of tier 2 FOR_ITER branch micro-ops (GH-118420) 2024-05-02 16:17:59 +01:00
parking_lot.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
pathconfig.c gh-117987: Restore several functions removed in Python 3.13 alpha 1 (GH-117993) 2024-04-18 15:20:38 +02:00
perf_jit_trampoline.c gh-118518: Ensure that the code padding it's applied (#118654) 2024-05-06 18:20:42 +01:00
perf_trampoline.c gh-118518: Allow perf to work without frame pointers (#112254) 2024-05-05 03:07:29 +02:00
preconfig.c
pyarena.c
pyctype.c
pyfpe.c
pyhash.c gh-113024: C API: Add PyObject_GenericHash() function (GH-113025) 2024-03-22 20:19:10 +02:00
pylifecycle.c gh-118527: Intern code consts in free-threaded build (#118667) 2024-05-06 20:12:39 -04:00
pymath.c
pystate.c gh-116322: Enable the GIL while loading C extension modules (#118560) 2024-05-06 23:07:23 -04:00
pystrcmp.c
pystrhex.c
pystrtod.c
Python-ast.c gh-117486: Improve behavior for user-defined AST subclasses (#118212) 2024-05-06 15:57:27 -07:00
Python-tokenize.c gh-116322: Add Py_mod_gil module slot (#116882) 2024-05-03 11:30:55 -04:00
pythonrun.c gh-111201: A new Python REPL (GH-111567) 2024-05-05 21:32:23 +02:00
pytime.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
qsbr.c gh-115103: Fix unregistering of QSBR state (#116480) 2024-03-08 12:39:53 -05:00
README
specialize.c GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322) 2024-05-04 12:11:11 +01:00
stdlib_module_names.h gh-111201: A new Python REPL (GH-111567) 2024-05-05 21:32:23 +02:00
structmember.c gh-115011: Improve support of __index__() in setters of members with unsigned integer type (GH-115029) 2024-02-11 12:45:58 +02:00
suggestions.c
symtable.c gh-116126: Implement PEP 696 (#116129) 2024-05-03 06:17:32 -07:00
sysmodule.c gh-116322: Enable the GIL while loading C extension modules (#118560) 2024-05-06 23:07:23 -04:00
thread.c gh-110850: Cleanup PyTime API: PyTime_t are nanoseconds (#115753) 2024-02-21 11:46:00 +01:00
thread_nt.h gh-110850: Use _PyDeadline_Get() in EnterNonRecursiveMutex() (#118556) 2024-05-04 09:39:58 +02:00
thread_pthread.h gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
thread_pthread_stubs.h
tier2_engine.md Docs: fix spelling of the word 'transferring' (#116641) 2024-03-13 23:53:32 +01:00
traceback.c gh-117764: Fix and add signatures for many builtins (GH-117769) 2024-04-12 13:56:41 +03:00
tracemalloc.c gh-93502: Add new C-API functions to trace object creation and destruction (#115945) 2024-05-02 19:30:00 +02:00
vm-state.md

Miscellaneous source files for the main Python shared library