STINNER Victor <victor.stin...@haypocalc.com> added the comment:

It looks like pthread_mutex_lock() and pthread_mutex_unlock() are not reentrant 
on some platforms (in some implementations of the pthread API).

Antoine: if I understand correctly your patch, if we have a pending signal, all 
next signals will be simply ignored.

I think that this issue is not specific to Mac OS X: signal_handler() can be 
called twice at the same time in two different threads or in the same thread 
(reentrant call).

pthread_sigmask() can be used to avoid reentrant call, but it has no effect on 
the second case: "signal_handler() called twice at the same time in two 
different threads".

Note: SA_NODEFER flag of sigaction() has no effect on this issue because 
signal_handler() is called twice to handle two different signals (SIGUSR1 and 
SIGUSR2).

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11768>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to