[issue38904] "signal only works in main thread" in main thread
Richard Warfield
report at bugs.python.org
Sun Nov 24 01:06:20 EST 2019
New submission from Richard Warfield <warfield at gmail.com>:
I have an application (https://github.com/litxio/ptghci) using embedded Python, which needs to set a signal handler (and use the prompt-toolkit library which itself sets signal handlers).
My call to signal.signal is guarded by a check that we're running in the main thread:
if threading.current_thread() is threading.main_thread():
print (threading.current_thread().name)
signal.signal(signal.SIGINT, int_handler)
And the above indeed prints "MainThread". But this raises an exception:
File "app.py", line 45, in __init__
signal.signal(signal.SIGINT, int_handler)
File "/usr/lib/python3.8/signal.py", line 47, in signal
handler = _signal.signal(_enum_to_int(signalnum), _enum_to_int(handler))
ValueError: signal only works in main thread
This seems like something that should not happen.
Now, I tried to generate a simple replicating example but thus far haven't been able to do so -- simply calling signal.signal from PyRun_SimpleString doesn't do the trick, even within a pthreads thread.
----------
messages: 357390
nosy: Richard Warfield
priority: normal
severity: normal
status: open
title: "signal only works in main thread" in main thread
type: behavior
versions: Python 3.8
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue38904>
_______________________________________
More information about the Python-bugs-list
mailing list