pthread_exit(3) - wariua/manpages-ko GitHub Wiki
pthread_exit - ํธ์ถ ์ค๋ ๋ ์ข ๋ฃํ๊ธฐ
#include <pthread.h>
void pthread_exit(void *retval);
-pthread
๋ก ๋งํฌ.
pthread_exit()
ํจ์๋ ํธ์ถ ์ค๋ ๋๋ฅผ ์ข
๋ฃํ๊ณ (์ค๋ ๋๊ฐ ํฉ๋ฅ ๊ฐ๋ฅ์ด๋ฉด) retval
์ ํตํด ์ด๋ค ๊ฐ์ ๋ฐํํ๋ค. ๊ฐ์ ํ๋ก์ธ์ค ๋ด์ ๋ค๋ฅธ ์ค๋ ๋๊ฐ pthread_join(3)์ ํธ์ถํด์ ๊ทธ ๊ฐ์ ์ป์ ์ ์๋ค.
pthread_cleanup_push(3)๋ก ์ค์ ํ๋๋ฐ ์์ง ๊บผ๋ด์ง ์์ ์ ๋ฆฌ ํธ๋ค๋ฌ๊ฐ ์์ผ๋ฉด (์ง์ด๋ฃ์ ์์ ๋ฐ๋๋ก) ๊บผ๋ด์ ์คํํ๋ค. ์ค๋ ๋์ ์ค๋ ๋๋ณ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ ๋ฆฌ ํธ๋ค๋ฌ๊ฐ ์คํ๋ ํ์ ๋์ํ๋ ์๋ฉธ์ ํจ์๋ค์ด ๋ช ์ธ๋์ง ์์ ์์๋ก ํธ์ถ๋๋ค.
์ค๋ ๋๊ฐ ์ข ๋ฃํ ๋๋ ํ๋ก์ธ์ค ๊ณต์ ์์๋ค(๊ฐ๋ น ๋ฎคํ ์ค, ์กฐ๊ฑด ๋ณ์, ์ธ๋งํฌ์ด, ํ์ผ ๋์คํฌ๋ฆฝํฐ)์ด ํด์ ๋์ง ์์ผ๋ฉฐ atexit(3)๋ก ๋ฑ๋กํ ํจ์๋ค์ด ํธ์ถ๋์ง ์๋๋ค.
ํ๋ก์ธ์ค์ ๋ง์ง๋ง ์ค๋ ๋๊ฐ ์ข ๋ฃํ๊ณ ๋๋ฉด ์ข ๋ฃ ์ํ 0์ผ๋ก exit(3)์ ํธ์ถํ ๊ฒ์ฒ๋ผ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃํ๋ค. ๊ทธ์ ๋ฐ๋ผ ํ๋ก์ธ์ค ๊ณต์ ์์๋ค์ด ํด์ ๋๊ณ atexit(3)์ผ๋ก ๋ฑ๋กํ ํจ์๋ค์ด ํธ์ถ๋๋ค.
์ด ํจ์๋ ํธ์ถ์์๊ฒ ๋ฐํํ์ง ์๋๋ค.
์ด ํจ์๋ ํญ์ ์ฑ๊ณตํ๋ค.
์ด ์ ์์ ์ฌ์ฉํ๋ ์ฉ์ด๋ค์ ๋ํ ์ค๋ช ์ attributes(7)๋ฅผ ๋ณด๋ผ.
์ธํฐํ์ด์ค | ์์ฑ | ๊ฐ |
---|---|---|
pthread_exit() |
์ค๋ ๋ ์์ ์ฑ | MT-Safe |
POSIX.1-2001, POSIX.1-2008.
๋ฉ์ธ ์ค๋ ๋ ์๋ ์ค๋ ๋์ ์์ ํจ์์์ ๋ฐํ์ ์ํํ๋ฉด ๋ฌต์์ ์ผ๋ก pthread_exit()
์ ํธ์ถํ๋ฉฐ ํจ์ ๋ฐํ ๊ฐ์ ์ค๋ ๋ ์ข
๋ฃ ์ํ๋ก ์ด๋ค.
๋ค๋ฅธ ์ค๋ ๋๋ค์ด ์คํ์ ๊ณ์ํ๊ฒ ํ๋ ค๋ฉด ๋ฉ์ธ ์ค๋ ๋์์ exit(3) ๋์ pthread_exit()
์ ํธ์ถํด์ ์ข
๋ฃํด์ผ ํ๋ค.
retval
์ด ๊ฐ๋ฆฌํค๋ ๊ฐ์ด ํธ์ถ ์ค๋ ๋์ ์คํ์ ์์นํด์๋ ์ ๋๋ค. ์ค๋ ๋๊ฐ ์ข
๋ฃํ ํ์๋ ๊ทธ ์คํ์ ๋ด์ฉ์ด ๊ท์ ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ค๋ ๋ ๊ทธ๋ฃน ๋ฆฌ๋๊ฐ ์ฃฝ์ ์ ์ง๋ ์ค๋ ๋ ๊ทธ๋ฃน์ wait(2) ํ๋ ์ปค๋ ๊ตฌํ ๋ก์ง์ ํ์ฌ ํ๊ณ๊ฐ ์๋ค. ์ค๋ ๋ ๊ทธ๋ฃน ๋ฆฌ๋๊ฐ ์ด๋ฏธ pthread_exit()
์ ํธ์ถํ ์ ๊ฒฝ ํ๋ก์ธ์ค์๊ฒ ์ ์ง ์๊ทธ๋์ ๋ณด๋ด๋ฉด ํฐ๋ฏธ๋์ด ์ ๊ธฐ๋ ๊ฒ ๊ฐ์ ๋ฌธ์ ๋ก ๊ทธ ํ๊ณ๊ฐ ๋๋ฌ๋ ์ ์๋ค.
pthread_create(3), pthread_join(3), pthreads(7)
2017-09-15