[Python-Dev] Add function to signal module for getting main thread id
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.current_thread().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.current_thread(), threading._MainThread)
> > True
> >
> > But really, what we need is a threading.main_thread() 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