pthread_rwlockattr_setkind_np(3) - wariua/manpages-ko GitHub Wiki
pthread_rwlockattr_setkind_np, pthread_rwlockattr_getkind_np - ์ค๋ ๋ ์ฝ๊ธฐ-์ฐ๊ธฐ ๋ฝ ์์ฑ ๊ฐ์ฒด์ ์ฝ๊ธฐ-์ฐ๊ธฐ ๋ฝ ์ข ๋ฅ ์ค์ ํ๊ธฐ/์ป๊ธฐ
#include <pthread.h>
int pthread_rwlockattr_setkind_np(pthread_rwlockattr_t *attr,
int pref);
int pthread_rwlockattr_getkind_np(const pthread_rwlockattr_t *attr,
int *pref);
-pthread
๋ก ์ปดํ์ผ ๋ฐ ๋งํฌ.
glibc ๊ธฐ๋ฅ ํ์ธ ๋งคํฌ๋ก ์๊ฑด (feature_test_macros(7) ์ฐธ๊ณ ):
-
pthread_rwlockattr_setkind_np()
,pthread_rwlockattr_getkind_np()
: _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200809L
pthread_rwlockattr_setkind_np()
ํจ์๋ attr
์ด ๊ฐ๋ฆฌํค๋ ์ฝ๊ธฐ-์ฐ๊ธฐ ๋ฝ ์์ฑ ๊ฐ์ฒด์ "๋ฝ ์ข
๋ฅ" ์์ฑ์ pref
์ ์ง์ ํ ๊ฐ์ผ๋ก ์ค์ ํ๋ค. ์ธ์ pref
๋ฅผ ๋ค์ ์ค ํ๋๋ก ์ค์ ํ ์ ์๋ค.
PTHREAD_RWLOCK_PREFER_READER_NP
- ๊ธฐ๋ณธ๊ฐ์ด๋ค. ํ ์ค๋ ๋๊ฐ ์ฝ๊ธฐ ๋ฝ์ ์ฌ๋ฌ ๋ฒ ์ก์ ์ ์๋ค. ์ฆ ์ฝ๊ธฐ ๋ฝ์ด ์ฌ๊ท์ ์ด๋ค. ๋จ์ผ ์ ๋์ค ๊ท๊ฒฉ์ ๋ฐ๋ฅด๋ฉด ์ฝ๊ธฐ ์ชฝ์ด ๋ฝ์ ์ก์ผ๋ ค ํ๋๋ฐ ์ฐ๊ธฐ ๋ฝ์ ์์ง๋ง ์ฐ๊ธฐ ์ชฝ์ด ๋๊ธฐ ์ค์ผ ๋์ ๋์ ๋ฐฉ์์ด ๋ช
์ธ๋์ด ์์ง ์๋ค.
PTHREAD_RWLOCK_PREFER_READER_NP
๋ฅผ ์ค์ ํด์ ์ฝ๊ธฐ ์ชฝ์ ์ฐ์ ํ๋ค๋ ๊ฒ์ ์ฐ๊ธฐ ์ชฝ์ด ๋๊ธฐ ์ค์ธ ๊ฒฝ์ฐ์๋ ์ฝ๊ธฐ ์ชฝ์ด ์์ฒญํ ๋ฝ์ ๋ฐ๊ฒ ๋๋ค๋ ์๋ฏธ์ด๋ค. ์ฝ๊ธฐ ์ชฝ์ด ์๋ ๋์์ ์ฐ๊ธฐ ์ชฝ์ด ๊ตถ์ฃผ๋ฆฌ๊ฒ ๋๋ค. PTHREAD_RWLOCK_PREFER_WRITER_NP
-
PTHREAD_RWLOCK_PREFER_READER_NP
์ ์ฐ๊ธฐ ๋ฝ ์ง์ผ๋ก ์๋๋ ๊ฒ์ด๋ค. glibc์์๋ ๋ฌด์ํ๋๋ฐ, ์ฌ๊ท์ ์ฐ๊ธฐ ๋ฝ์ ์ง์ํด์ผ ํ๋ค๋ POSIX ์๊ตฌ ์ฌํญ ๋๋ฌธ์ ์ด ์ต์ ์ด ์ฌ์ํ ๊ต์ฐฉ๋ค์ ๋ง๋ค๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋์PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
๋ฅผ ์ฐ๋ฉด ๋๋๋ฐ, ์์ฉ ๊ฐ๋ฐ์๊ฐ ์ฌ๊ท์ ์ฝ๊ธฐ ๋ฝ์ ์ก์ง ์๋๋ก ํด์ ๊ต์ฐฉ์ ํผํ๋ค. PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
- ๋ฝ ์ข ๋ฅ๋ฅผ ์ด ๊ฐ์ผ๋ก ์ค์ ํ๋ฉด ์ฝ๊ธฐ ๋ฝ์ด ์ฌ๊ท์ ๋ฐฉ์์ผ๋ก ์ด๋ค์ง์ง๋ง ์์ผ๋ฉด ์ฐ๊ธฐ ์ชฝ ๊ตถ์ฃผ๋ฆผ์ ํผํ๊ฒ ๋๋ค.
pthread_rwlockattr_getkind_np()
ํจ์๋ attr
์ด ๊ฐ๋ฆฌํค๋ ์ฝ๊ธฐ-์ฐ๊ธฐ ๋ฝ ์์ฑ ๊ฐ์ฒด์ ๋ฝ ์ข
๋ฅ ์์ฑ ๊ฐ์ ํฌ์ธํฐ pref
๋ก ๋ฐํํ๋ค.
์ฑ๊ณต ์ ์ด ํจ์๋ค์ 0์ ๋ฐํํ๋ค. ์ ํจํ ํฌ์ธํฐ ์ธ์๊ฐ ์ฃผ์ด์ง๋ฉด pthread_rwlockattr_getkind_np()
๋ ํญ์ ์ฑ๊ณตํ๋ค. ์ค๋ฅ ์ pthread_rwlockattr_setkind_np()
๋ 0 ์๋ ์ค๋ฅ ๋ฒํธ๋ฅผ ๋ฐํํ๋ค.
EINVAL
-
pref
๊ฐ ์ง์ํ์ง ์๋ ๊ฐ์ ๋ํ๋ธ๋ค.
glibc 2.1์์ pthread_rwlockattr_getkind_np()
๋ฐ pthread_rwlockattr_setkind_np()
ํจ์๊ฐ ์ฒ์ ๋ฑ์ฅํ๋ค.
์ด ํจ์๋ค์ ๋นํ์ค GNU ํ์ฅ์ด๋ค. ๊ทธ๋์ ์ด๋ฆ ๋ค์ "_np"(nonportable: ์ด์์ฑ ์์)๊ฐ ๋ถ์ด ์๋ค.
2019-03-06