Pythonのシグナルハンドラでprintを呼ぶのは安全か?

Is it safe to call print in a Python signal handler?

PythonにはCレベルのシグナルハンドラとユーザー定義のPythonシグナルハンドラの2つがあり、後者はインタプリタが安全な状態で呼ばれるため、Cの制限は適用されない。しかし、シグナルハンドラは再入可能であり、print実行中に再入するとRuntimeErrorが発生してクラッシュする可能性がある。実際に50回のシグナル送信で再現し、極端な状況下でのリスクを実証した。

極端な状況下では、シグナルハンドラ内でprintを呼ぶとプログラムがクラッシュする可能性があります。

この日のほかの記事

2026-08-30