[Python-Dev] Add function to signal module for getting main thread id (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Fri Aug 30 14:21:54 CEST 2013


Le Fri, 30 Aug 2013 14:06:11 +0200, Christian Heimes <christian at python.org> a écrit :

Am 30.08.2013 11:39, schrieb Antoine Pitrou: > > Le Fri, 30 Aug 2013 12:24:07 +0300, > Andrew Svetlov <andrew.svetlov at gmail.com> a écrit : >> Main thread is slightly different from others. >> Signals can be subscribed from main thread only. >> Tulip has special logic for main thread. >> In application code we can explicitly know which thread is >> executed, main or not. >> But from library it's not easy. >> Tulip uses check like >> threading.currentthread().name == 'MainThread' >> This approach has a problem: thread name is writable attribute and >> can be changed by user code. > > Please at least use: > > >>> isinstance(threading.currentthread(), threading.MainThread) > True > > But really, what we need is a threading.mainthread() function.

What happens, when a program fork()s from another thread than the main thread? AFAIR the other threads are suspended and the forking thread is the new main thread. Or something similar...

Yes. We even support it :-) http://hg.python.org/cpython/file/c347b9063a9e/Lib/test/test_threading.py#l503

(well, whoever wrote that test wanted to support it. I don't think that's me)

Regards

Antoine.



More information about the Python-Dev mailing list