Issue 14456: Relation between threads and signals unclear (original) (raw)

Issue14456

Created on 2012-03-30 23:12 by smarnach, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (7)
msg157156 - (view) Author: Sven Marnach (smarnach) Date: 2012-03-30 23:12
The documentation of the 'signal' module states on the one hand [T]he main thread will be the only one to receive signals (this is enforced by the Python signal module, even if the underlying thread implementation supports sending signals to individual threads). On the other hand, it provides the function 'pthread_kill()': Send the signal signum to the thread thread_id, another thread in the same process as the caller. The signal is asynchronously directed to thread. These two passages are in contradiction to each other. The documentation also states that only the main thread can set signal handlers -- if this is true, it is utterly unclear how sending signals to other threads is useful. Probably the documentation wasn't fully updated when the above function was introduced.
msg157158 - (view) Author: Sven Marnach (smarnach) Date: 2012-03-30 23:27
For reference: the functions 'pthread_kill()' etc. were intrduced in .
msg157160 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2012-03-30 23:41
> These two passages are in contradiction to each other. By default, a thread signal can receive any signal and the signal handler implemented in C will be called in the context of the thread. CPython ensures that a signal handler implemented in Python and installed by signal.signal() will be called in the main thread. It uses a signal handler implemented in C which only store the notification and will be the Python signal handler later (as early as possible). pthread_sigmask() can be used to mask some signals (or all signals) on a specific thread.
msg157222 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2012-03-31 19:14
New changeset 52e32f3b933d by Antoine Pitrou in branch '3.2': Issue #14456: improve documentation of the signal module w.r.t. threads. http://hg.python.org/cpython/rev/52e32f3b933d New changeset 44d13f371811 by Antoine Pitrou in branch 'default': Issue #14456: improve documentation of the signal module w.r.t. threads. http://hg.python.org/cpython/rev/44d13f371811
msg157223 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2012-03-31 19:15
Should be fixed now.
msg157238 - (view) Author: Sven Marnach (smarnach) Date: 2012-03-31 23:18
Thanks, Antoine! It's perfectly clear now, and the newly introduces headlines are a definite improvement.
msg263160 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-04-11 02:47
New changeset 73050563053f by Martin Panter in branch '3.5': Issue #14456: Remove contradiction about blocking signals from bad merge https://hg.python.org/cpython/rev/73050563053f New changeset a8dbe6016a31 by Martin Panter in branch 'default': Issue #14456: Merge signal doc fix from 3.5 https://hg.python.org/cpython/rev/a8dbe6016a31
History
Date User Action Args
2022-04-11 14:57:28 admin set github: 58661
2016-04-11 02:47:20 python-dev set messages: +
2012-03-31 23🔞54 smarnach set messages: +
2012-03-31 19:15:45 pitrou set status: open -> closednosy: + pitroumessages: + resolution: fixedstage: resolved
2012-03-31 19:14:59 python-dev set nosy: + python-devmessages: +
2012-03-30 23:41:19 vstinner set nosy: + vstinner, neologixmessages: +
2012-03-30 23:27:04 smarnach set messages: +
2012-03-30 23:12:58 smarnach create