Message380891
_PyInterpreterState_DeleteExceptMain() contains the following check:
PyThreadState *tstate = _PyThreadState_Swap(gilstate, NULL);
if (tstate != NULL && tstate->interp != runtime->interpreters->main) {
return _PyStatus_ERR("not main interpreter");
}
os.fork() is allow in subinterpreters and PyOS_AfterFork_Child() doesn't seem to update runtime->interpreters->main.
Either we should update runtime->interpreters->main after fork in the child process, or os.fork() should be denied in subinterpreters.
In bpo-37266, I denied the creation of daemon threads in subinterpreters. But I had to revert this change: see bpo-40234. |
|
Date |
User |
Action |
Args |
2020-11-13 14:23:09 | vstinner | set | recipients:
+ vstinner |
2020-11-13 14:23:09 | vstinner | set | messageid: <1605277389.1.0.366726177524.issue42346@roundup.psfhosted.org> |
2020-11-13 14:23:09 | vstinner | link | issue42346 messages |
2020-11-13 14:23:08 | vstinner | create | |
|