PTHREAD_ONCE(3) FreeBSD ライブラリ関数マニュアル PTHREAD_ONCE(3)
名称
pthread_once − 動的なパッケージの初期化 |
ライブラリ
Reentrant C Library (libc_r, −pthread) |
書式
#include <pthread.h> pthread_once_t once_control = PTHREAD_ONCE_INIT; int |
pthread_once(pthread_once_t *once_control, void (*init_routine)(void)); |
解説 |
プロセスの全てのスレッドによる最初の、与えられた once_control を伴っての pthread_once() の呼び出しは、 init_routine() を引数無しで呼び出します。そ の後での同じ once_control を持つ pthread_once() の呼び出しは、 init_routine() を呼び出しません。 pthread_once() から戻る時点では、 init_routine() が完了していることが保証されています。 once_control パラ メータは、関連付けられた初期化ルーチンが既に呼び出されたかどうかを判断す るために使用されます。 関数 pthread_once() は取り消しポイントではありません。しかしながら、 init_routine() が取り消しポイントですので取り消され、 once_control は pthread_once() が一度も呼び出されていないかのような結果になります。 定数 PTHREAD_ONCE_INIT は、 〈pthread.h〉 で定義されています。 once_control に自動保存期間がある、または PTHREAD_ONCE_INIT で初期化され ていない場合には、 pthread_once() の動作は未定義です。 |
戻り値
問題がない場合は、 pthread_once() 関数は 0 を返します。問題がある場合は、 そのエラーを示すためにエラー番号が返されます。 |
エラー
ありません。 |
規格
pthread_once() は ISO/IEC 9945-1:1996 (‘‘POSIX.1’’) に適合しています。 FreeBSD 10.0 April 4, 1996 FreeBSD 10.0 |