From 468430189d3ebe16f3067279f9be0fe82cdfadf6 Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Wed, 14 Feb 2024 16:07:22 -0700 Subject: gh-115482: Assume the Main Interpreter is Always Running "main" (gh-115484) This is a temporary fix to unblock embedders that do not call Py_Main(). _PyInterpreterState_IsRunningMain() will always return true for the main interpreter, even in corner cases where it technically should not. The (future) full solution will do the right thing in those corner cases. --- Python/pystate.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Python/pystate.c b/Python/pystate.c index 82c9558..08ec586 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -1044,7 +1044,14 @@ _PyInterpreterState_SetNotRunningMain(PyInterpreterState *interp) int _PyInterpreterState_IsRunningMain(PyInterpreterState *interp) { - return (interp->threads.main != NULL); + if (interp->threads.main != NULL) { + return 1; + } + // For now, we assume the main interpreter is always running. + if (_Py_IsMainInterpreter(interp)) { + return 1; + } + return 0; } int -- cgit v0.12