PTHREAD_EXIT(3)

명칭
pthread_exit - 호출하고 있는 thread의 종료

프로그램 라이브러리
libc_r

서식
<pthread.h> void pthread_exit(void *value_ptr)

해설
pthread_exit() 함수는, 호출하고 있는 thread를 종료해, 종료하는 thread와 성공리에 기다리고 하기 위해서 value_ptr 의 값을 이용 가능하게 합니다. 이미 스택에 쌓여 있어 꺼내지지 않은 취소 클린 업 핸들러는, 쌓아진 것과 역의 순서로 꺼내져 실행됩니다. 모든 취소 핸들러가 실행된 다음에, thread가 그 thread 고유의 데이터를 가지고 있는 경우에는, 적절한 소멸자 함수가 순서 부정으로 불려 갑니다. thread의 종료는, 어플리케이션으로부터 보이는 모든 프로세스 리소스를 해방하지 않습니다. 이 리소스는, mutex 및 파일 기술자를 포함합니다만, 이것에 한정하지 않습니다. 또, 모든 프로세스 레벨의 클린 업의 실행도 행하지 않습니다. 이 클린 업은, 존재할 가능성이 있다 atexit() routine의 호출을 포함합니다만, 이것에 한정하지 않습니다.

main() (을)를 최초로 실행한 thread 이외의 thread가, 그 작성에 사용되었다 개시 routine로부터 돌아왔을 때에, 암묵적으로 pthread_exit() 하지만 불려 갑니다. 함수의 반환값은, thread의 종료 스테이터스로서 사용됩니다.

암묵적인 또는 명시적인 pthread_exit() 의 호출의 결과로서 실행된 취소 핸들러 또는 소멸자 함수로부터 불려 갔을 경우의, pthread_exit() 의 동작은 미정도리입니다.

thread가 종료한 다음에의, 그 thread의 로컬 (auto) 변수에의 액세스의 결과는 미정도리입니다. 따라서, 종료하는 thread의 로컬 변수에의 참조는, pthread_exit() 의 value_ptr 파라미터의 값에 사용되어야 하는 것이 아닙니다.

마지막 thread가 종료한 다음에, 프로세스는 종료 스테이터스 0 으로 종료합니다. thread 종료시에 실장이 인수 0 으로 exit() (을)를 호출했는지와 같이 동작합니다.

반환값
pthread_exit() 함수는 호출해 측에는 돌아올 수 없습니다.

에러
없습니다.

관련 항목
_exit(2), exit(3), pthread_create(3), pthread_join(3)

표준
pthread_exit() 하 p1003.1-96 에 적합하고 있습니다.