私が扱っているコードには、適切に処理するためにシグナル番号を切り替える共有シグナルハンドラがあります。シグナルハンドラでSIGRTMINとSIGRTMAXを安全に使用できますか?
カスタム信号を追加しています。この
static void signal_handler (int s)
{
if (s == SIGTERM) clean_up() ;
else if (s == SIGRTMIN+1) ; // do nothing
}
SIGRTMIN
とSIGRTMAX
ようなものが
シグナル・ハンドラは、非リエントラントことになっている(私はGoogleのコード検索で見てきた実装で)静的データを初期化する関数呼び出しのの#defineです。アクセサの静的データをSIGRTMIN
とSIGRTMAX
に使用すると、これらのマクロはシグナルハンドラで使用するのが安全ではありませんか?
あなたは、おそらくより良い、 'SIGTERM'および他のあなたのための' SIGRT * ' –
@Basileのための1つを*異なる*シグナルハンドラ・ルーチンを持っている必要がありそうそれが一番簡単な方法、おかげだと思います。 SIGRTMIN/MAXがシグナルハンドラで使用するのが安全か安全でないかを知りたい場合は – wreckgar23