Python 시그널 핸들러에서 print 호출, 안전할까?
Is it safe to call print in a Python signal handler?
CPython은 사용자 정의 Python 시그널 핸들러를 C 수준 핸들러 내부에서 직접 호출하지 않아 일반적인 C 시그널 안전 제약에서 벗어나지만, Python 핸들러는 예기치 않게 재진입할 수 있습니다. 이 글은 print 호출 중 재진입이 발생할 때 어떤 일이 일어나는지 스트레스 테스트로 보여주며, 극단적인 상황에서는 RuntimeError로 프로그램이 중단될 수 있음을 밝힙니다. 저자는 실제로 겪을 가능성은 낮지만, 시그널 핸들러에서는 비자명한 작업을 피하라고 조언합니다.
극단적인 상황에서 시그널 핸들러에서 print를 호출하면 프로그램이 중단될 수 있습니다.