PTHREAD_ONCE(3)

명칭
pthread_once - 동적인 패키지의 초기화

프로그램 라이브러리
libc_r

서식
<pthread.h>

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

해설
프로세스의 모든 thread에 의한 최초의, 주어졌다 once_control (을)를 따른 pthread_once() 의 호출은, init_routine() (을)를 인수 없음으로 호출합니다. 그 후에서의 같다 once_control (을)를 가진다 pthread_once() 의 호출은, init_routine() (을)를 호출하지 않습니다. pthread_once() (으)로부터 돌아오는 시점에서는, init_routine() 하지만 완료하고 있는 것이 프로텍션되고 있습니다. once_control 파라미터는, 관련지을 수 있었던 초기화 routine가 이미 불려 갔는지 어떠했는지를 판단하기 위해서(때문에) 사용됩니다.

함수 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() 하 p1003.1-96 에 적합하고 있습니다.