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.
This commit is contained in:
Eric Snow 2024-02-14 16:07:22 -07:00 committed by GitHub
parent 3e7b7df5cb
commit 468430189d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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