From: Eric Snow Date: Wed, 14 Feb 2024 23:07:22 +0000 (-0700) Subject: gh-115482: Assume the Main Interpreter is Always Running "main" (gh-115484) X-Git-Tag: v3.13.0a4~13 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=468430189d3ebe16f3067279f9be0fe82cdfadf6;p=thirdparty%2FPython%2Fcpython.git 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. --- diff --git a/Python/pystate.c b/Python/pystate.c index 82c955882185..08ec586963ce 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