Eric Snow <[email protected]> added the comment:
I should have added something like this earlier, but here are key points to
consider covering:
* "main" interpreter is the original, created when the runtime initializes
* historically almost always the only Python interpreter in a process
* this is changing (more projects using subinterpreters, PEP 554)
* in the "python" executable, subinterpreters available via extension
modules (but uncommon)
* it has extra responsiblities:
* signal handling, in main thread
* "pending calls", in main thread
* not necessarily something to publicize :)
* running in the "main" thread
* can be taken over by a sub-interpreter, but not likely
* execution *during* runtime initialization
* usually (always?) the active interpreter during runtime finalization
* others?
* no strong link between interpreters (e.g. main <--> sub <--> sub)
* no record of what interpreter was active (if any) when a subinterpreter
was created
* no "parent" interpreter
* thread states may share thread ID
* a bunch of stuff in the C-API and in the runtime still assumes that the main
interpreter is running in the current OS thread
* other stuff?
Not all of that necessarily belongs there in the docs, but a lot of it does. :)
----------
nosy: +ncoghlan
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue36487>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com