Eric Snow <ericsnowcurren...@gmail.com> 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 <rep...@bugs.python.org>
<https://bugs.python.org/issue36487>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to