pthread_spin_lock(3) - wariua/manpages-ko GitHub Wiki

NAME

pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock - μŠ€ν•€λ½ 잠그기 및 ν’€κΈ°

SYNOPSIS

#include <pthread.h>

int pthread_spin_lock(pthread_spinlock_t *lock);
int pthread_spin_trylock(pthread_spinlock_t *lock);
int pthread_spin_unlock(pthread_spinlock_t *lock);

-pthread둜 컴파일 및 링크.

glibc κΈ°λŠ₯ 확인 맀크둜 μš”κ±΄ (feature_test_macros(7) μ°Έκ³ ):

pthread_spin_lock(), pthread_spin_trylock():
_POSIX_C_SOURCE >= 200112L

DESCRIPTION

pthread_spin_lock() ν•¨μˆ˜λŠ” lock이 κ°€λ¦¬ν‚€λŠ” μŠ€ν•€λ½μ„ μž κ·Όλ‹€. μŠ€ν•€λ½μ΄ ν˜„μž¬ 잠겨 μžˆμ§€ μ•ŠμœΌλ©΄ 호좜 μŠ€λ ˆλ“œκ°€ μ¦‰μ‹œ 락을 νšλ“ν•œλ‹€. μŠ€ν•€λ½μ΄ ν˜„μž¬ λ‹€λ₯Έ μŠ€λ ˆλ“œμ— μ˜ν•΄ 잠겨 있으면 호좜 μŠ€λ ˆλ“œκ°€ λ§΄λŒλ©΄μ„œ 락을 κ²€μ‚¬ν•˜λ©°, 락이 μ‚¬μš© κ°€λŠ₯ν•΄μ§€λŠ” μ‹œμ μ— 호좜 μŠ€λ ˆλ“œκ°€ 락을 νšλ“ν•œλ‹€.

ν˜ΈμΆœμžκ°€ 이미 작고 μžˆλŠ” λ½μ΄λ‚˜ pthread_spin_init(3)으둜 μ΄ˆκΈ°ν™” ν•˜μ§€ μ•Šμ€ 락에 pthread_spin_lock()을 ν˜ΈμΆœν•˜λŠ” κ²°κ³ΌλŠ” κ·œμ •λ˜μ–΄ μžˆμ§€ μ•Šλ‹€.

pthread_spin_trylock() ν•¨μˆ˜λŠ” pthread_spin_lock()κ³Ό λΉ„μŠ·ν•˜λ˜ lock이 κ°€λ¦¬ν‚€λŠ” μŠ€ν•€λ½μ΄ ν˜„μž¬ 잠겨 있으면 맴돌기λ₯Ό ν•˜μ§€ μ•Šκ³  호좜이 μ¦‰μ‹œ EBUSY 였λ₯˜λ‘œ λ°˜ν™˜ν•œλ‹€.

pthread_spin_unlock() ν•¨μˆ˜λŠ” lock이 κ°€λ¦¬ν‚€λŠ” μŠ€ν•€λ½μ„ ν‘Όλ‹€. κ·Έ 락에 맴돌고 μžˆλŠ” μŠ€λ ˆλ“œκ°€ 있으면 κ·Έ 쀑 ν•œ μŠ€λ ˆλ“œκ°€ 락을 νšλ“ν•˜κ²Œ λœλ‹€.

ν˜ΈμΆœμžκ°€ 작고 μžˆμ§€ μ•Šμ€ 락에 pthread_spin_unlock()을 ν˜ΈμΆœν•˜λŠ” κ²°κ³ΌλŠ” κ·œμ •λ˜μ–΄ μžˆμ§€ μ•Šλ‹€.

RETURN VALUE

성곡 μ‹œ 이 ν•¨μˆ˜λ“€μ€ 0을 λ°˜ν™˜ν•œλ‹€. μ‹€νŒ¨ μ‹œ 였λ₯˜ 번호λ₯Ό λ°˜ν™˜ν•œλ‹€.

ERRORS

pthread_spin_lock()이 λ‹€μŒ 였λ₯˜λ‘œ μ‹€νŒ¨ν•  수 μžˆλ‹€.

EDEADLOCK
μ‹œμŠ€ν…œμ΄ ꡐ착 쑰건을 νƒμ§€ν–ˆλ‹€.

pthread_spin_trylock()이 λ‹€μŒ 였λ₯˜λ‘œ μ‹€νŒ¨ν•  수 μžˆλ‹€.

EBUSY
μŠ€ν•€λ½μ΄ ν˜„μž¬ λ‹€λ₯Έ μŠ€λ ˆλ“œμ— μ˜ν•΄ 잠겨 μžˆλ‹€.

VERSIONS

glibc 버전 2.2μ—μ„œ 이 ν•¨μˆ˜λ“€μ΄ 처음 λ“±μž₯ν–ˆλ‹€.

CONFORMING TO

POSIX.1-2001.

NOTES

이 νŽ˜μ΄μ§€μ—μ„œ κΈ°μˆ ν•˜λŠ” ν•¨μˆ˜λ“€μ„ μ΄ˆκΈ°ν™” λ˜μ–΄ μžˆμ§€ μ•Šμ€ 락에 μ μš©ν•˜λŠ” κ²°κ³ΌλŠ” κ·œμ •λ˜μ–΄ μžˆμ§€ μ•Šλ‹€.

pthread_spin_init(3)의 NOTESλ₯Ό 주의 깊게 읽어 보라.

SEE ALSO

pthread_spin_destroy(3), pthread_spin_init(3), pthreads(7)


2017-09-30

⚠️ **GitHub.com Fallback** ⚠️