Llamar a print en un manejador de señales de Python puede estrellar tu programa
Is it safe to call print in a Python signal handler?
En este artículo, el autor investiga si es seguro llamar a print dentro de un manejador de señales en Python. Aunque CPython difiere la ejecución del manejador hasta que el intérprete está en un estado consistente, los manejadores de señales de Python son inesperadamente reentrantes. Una ráfaga rápida de señales puede provocar una llamada reentrante a print que cause una excepción RuntimeError y, en casos extremos, bloquee el programa. El autor concluye que, aunque es un riesgo teórico, en la práctica es poco probable que ocurra, pero recomienda evitar trabajo no trivial en manejadores de señales.
El programa de prueba muestra que, en circunstancias extremas, llamar a print en un manejador de señales puede hacer que tu programa se bloquee.