[Python-Dev] Add function to signal module for getting main thread id
andrew.svetlov at gmail.com
Fri Aug 30 14:51:08 CEST 2013
I've made a patch. It works except scenario described by Christian Heimes.
See details in http://bugs.python.org/issue18882
On Fri, Aug 30, 2013 at 3:21 PM, Antoine Pitrou <solipsis at pitrou.net> wrote:
> 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 :-)
> (well, whoever wrote that test wanted to support it. I don't think
> that's me)
> Python-Dev mailing list
> Python-Dev at python.org
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/andrew.svetlov%40gmail.com
More information about the Python-Dev