Avoid nested SIGINT handling

Paulo da Silva p_d_a_s_i_l_v_a_ns at nonetnoaddress.pt
Thu Nov 11 12:18:52 EST 2021


Às 06:22 de 11/11/21, Chris Angelico escreveu:
> On Thu, Nov 11, 2021 at 5:01 PM Jon Ribbens via Python-list
> <python-list at python.org> wrote:
>>
>> On 2021-11-10, Paulo da Silva <p_d_a_s_i_l_v_a_ns at nonetnoaddress.pt> wrote:
>>> Hi!
>>>
>>> How do I handle a SIGINT (or any other signal) avoid nesting?
>>
>> I don't think you need to. Python will only call signal handlers in
>> the main thread, so a handler can't be executed while another handler
>> is running anyway.
> 
> Threads aren't the point here - signals happen immediately.
> 
> Would it be easier to catch KeyboardInterrupt and do your processing
> there, rather than actually catching SIGINT?
> 
> I'd recommend just trying what you have, and seeing if it's reentrant.
> My suspicion is that it isn't, on a technical level (the Python
> function will be queued for when it's safe to call it - probably after
> the next bytecode instruction), but that your own code will still need
> to worry about reentrancy.
> 
OK, thank you


More information about the Python-list mailing list