マルチスレッドのプログラミング

安全な fork

「解決策: pthread_atfork」pthread_atfork(3C) の説明を参照してください。

pthread_atfork の構文

int pthread_atfork(void (*prepare) (void), void (*parent) (void),
    void (*child) (void) );

pthread_atfork の戻り値

pthread_atfork() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると pthread_atfork() は失敗し、対応する値を返します。


ENOMEM

説明:

テーブル空間が足りないので、fork ハンドラのアドレスを記録できません。