PTHREAD_ONCE

Section: C Library Functions (3)
Updated: LinuxThreads
IndexJM Home Page

 

名前

pthread_once - 1 回きりの初期化

 

書式

#include <pthread.h>

pthread_once_t once_control = PTHREAD_ONCE_INIT;

int pthread_once(pthread_once_t *once_control, void (*init_routine) (void));

 

説明

pthread_onceの目的は、 初期化コードが高々 1 回しか実行されないようにすることである。 引数once_controlは静的変数または外部変数を指し示し、静的にPTHREAD_ONCE_INITという値に初期化されていなければならない。

最初に引数once_controlとともにpthread_onceが呼び出されたときには、init_routineを引数なしで呼び出し、 変数once_controlの値を変更して初期化が行なわれたことを記録する。 その後同じ引数once_controlとともにpthread_onceが呼び出されたときは何もしない。

 

返り値

pthread_onceは常に 0 を返す。

 

エラー

なし。

 

著者

Xavier Leroy <Xavier.Leroy@inria.fr>

[訳注] glibc-linuxthreads の最新のドキュメントは Texinfo 形式で提供されている。 以下は glibc-linuxthreads-2.3.1 の Texinfo ファイルからの引用で、 「説明」への追記にあたるものである。

スレッドがinit_routineを実行中に取り消しされた場合、once_controlはリセットされ、将来pthread_onceが呼び出されたとき初期化ルーチンは再び実行される。

1 つまたは複数のスレッドがpthread_onceの初期化ルーチンを実行中に プロセスが fork したときには、 子プロセスではそれぞれのonce_control変数はリセットされたように見え、 子プロセスでpthread_onceが呼び出されたとき初期化ルーチンは実行される。


関連キーワード

once,pthread,ONCE,PTHREAD,control,ルーチン,プロセス,init,routine,リセット 

Index

名前
書式
説明
返り値
エラー
著者

This document was created byman2html, using the manual pages.
Time: 03:39:09 GMT, June 22, 2021