0
0
mirror of https://github.com/python/cpython.git synced 2024-12-01 11:15:56 +01:00
cpython/Python
Brett Simmers be1dfccdf2
gh-118727: Don't drop the GIL in drop_gil() unless the current thread holds it (#118745)
`drop_gil()` assumes that its caller is attached, which means that the current
thread holds the GIL if and only if the GIL is enabled, and the enabled-state
of the GIL won't change. This isn't true, though, because `detach_thread()`
calls `_PyEval_ReleaseLock()` after detaching and
`_PyThreadState_DeleteCurrent()` calls it after removing the current thread
from consideration for stop-the-world requests (effectively detaching it).

Fix this by remembering whether or not a thread acquired the GIL when it last
attached, in `PyThreadState._status.holds_gil`, and check this in `drop_gil()`
instead of `gil->enabled`.

This fixes a crash in `test_multiprocessing_pool_circular_import()`, so I've
reenabled it.
2024-05-23 16:59:35 -04:00
..
clinic gh-111201: A new Python REPL (GH-111567) 2024-05-05 21:32:23 +02:00
frozen_modules
_warnings.c gh-119049: Fix incorrect display of warning which is constructed by C API (GH-119063) 2024-05-16 20:27:59 +00:00
adaptive.md
asdl.c
asm_trampoline.S
assemble.c
ast_opt.c
ast_unparse.c
ast.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
bytecodes.c gh-119180: Add LOAD_COMMON_CONSTANT opcode (#119321) 2024-05-22 00:46:39 +00:00
ceval_gil.c gh-118727: Don't drop the GIL in drop_gil() unless the current thread holds it (#118745) 2024-05-23 16:59:35 -04:00
ceval_macros.h
ceval.c gh-118692: Avoid creating unnecessary StopIteration instances for monitoring (#119216) 2024-05-21 20:42:51 +00:00
codecs.c
compile.c gh-119180: Add LOAD_COMMON_CONSTANT opcode (#119321) 2024-05-22 00:46:39 +00:00
condvar.h
config_common.h
context.c
critical_section.c
crossinterp_data_lookup.h
crossinterp_exceptions.h
crossinterp.c
dtoa.c
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-118702: Implement vectorcall for BaseException (#118703) 2024-05-10 21:08:24 +02:00
executor_cases.c.h gh-119180: Add LOAD_COMMON_CONSTANT opcode (#119321) 2024-05-22 00:46:39 +00:00
fileutils.c
flowgraph.c
formatter_unicode.c
frame.c
frozen.c
frozenmain.c
future.c
gc_free_threading.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
gc_gil.c
gc.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
generated_cases.c.h gh-119180: Add LOAD_COMMON_CONSTANT opcode (#119321) 2024-05-22 00:46:39 +00:00
getargs.c gh-119213: Be More Careful About _PyArg_Parser.kwtuple Across Interpreters (gh-119331) 2024-05-22 09:57:52 -06:00
getcompiler.c
getcopyright.c
getopt.c
getplatform.c
getversion.c gh-119132: Update sys.version to identify free-threaded or not. (gh-119134) 2024-05-18 19:44:40 +00:00
hamt.c
hashtable.c
import.c gh-117953: Always Run Extension Init Func in Main Interpreter First (gh-118157) 2024-05-07 04:21:51 +00:00
importdl.c gh-117953: Imply Single-phase Init if the Init Function Fails (gh-118684) 2024-05-06 21:16:22 -06:00
initconfig.c gh-118518: Rename PYTHONPERFJITSUPPORT and -X perfjit with underscores (#118693) 2024-05-07 11:47:21 +00:00
instruction_sequence.c
instrumentation.c gh-119431: fix refleak in test_monitoring (#119444) 2024-05-23 10:21:53 +01:00
interpconfig.c
intrinsics.c gh-74929: Implement PEP 667 (GH-115153) 2024-05-04 12:12:10 +01:00
jit.c GH-118844: Fix build failures when combining --disable-gil with --enable-experimental-jit (GH-118935) 2024-05-11 16:19:31 -07:00
legacy_tracing.c
lock.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
marshal.c
modsupport.c
mysnprintf.c
mystrtoul.c
object_stack.c
opcode_targets.h gh-119180: Add LOAD_COMMON_CONSTANT opcode (#119321) 2024-05-22 00:46:39 +00:00
optimizer_analysis.c GH-118910: Less boilerplate in the tier 2 optimizer (#118913) 2024-05-10 17:43:23 +01:00
optimizer_bytecodes.c GH-118910: Less boilerplate in the tier 2 optimizer (#118913) 2024-05-10 17:43:23 +01:00
optimizer_cases.c.h gh-119180: Add LOAD_COMMON_CONSTANT opcode (#119321) 2024-05-22 00:46:39 +00:00
optimizer_symbols.c GH-118910: Less boilerplate in the tier 2 optimizer (#118913) 2024-05-10 17:43:23 +01:00
optimizer.c gh-111389: Add PyHASH_MULTIPLIER constant (#119214) 2024-05-21 19:51:51 +02:00
parking_lot.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
pathconfig.c
perf_jit_trampoline.c GH-118844: Fix build failures when combining --disable-gil with --enable-experimental-jit (GH-118935) 2024-05-11 16:19:31 -07: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 gh-119219: Remove two obsolete TODOs. (#119223) 2024-05-20 16:54:16 +00:00
pyctype.c
pyfpe.c
pyhash.c gh-111389: Add PyHASH_MULTIPLIER constant (#119214) 2024-05-21 19:51:51 +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-118727: Don't drop the GIL in drop_gil() unless the current thread holds it (#118745) 2024-05-23 16:59:35 -04:00
pystrcmp.c
pystrhex.c
pystrtod.c
Python-ast.c gh-118851: Default ctx arguments to AST constructors to Load() (#118854) 2024-05-09 15:30:14 -07:00
Python-tokenize.c
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-117657: Fix QSBR race condition (#118843) 2024-05-10 10:26:35 -04:00
README
specialize.c
stdlib_module_names.h gh-111201: A new Python REPL (GH-111567) 2024-05-05 21:32:23 +02:00
structmember.c
suggestions.c
symtable.c
sysmodule.c gh-118518: Rename PYTHONPERFJITSUPPORT and -X perfjit with underscores (#118693) 2024-05-07 11:47:21 +00:00
thread_nt.h
thread_pthread_stubs.h
thread_pthread.h gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
thread.c
tier2_engine.md
traceback.c
tracemalloc.c gh-111389: Add PyHASH_MULTIPLIER constant (#119214) 2024-05-21 19:51:51 +02:00
vm-state.md

Miscellaneous source files for the main Python shared library