svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
pthread_rwlock_rdlock(3c)
Standard C Library Functions pthread_rwlock_rdlock(3C)
NAME
pthread_rwlock_rdlock, pthread_rwlock_tryrdlock - lock or attempt to
lock read-write lock object for reading
SYNOPSIS
#include <pthread.h>
int pthread_rwlock_rdlock(pthread_rwlock_t *rwlock);
int pthread_rwlock_tryrdlock(pthread_rwlock_t *rwlock);
DESCRIPTION
The pthread_rwlock_rdlock() function applies a read lock to the read-
write lock referenced by rwlock. The calling thread acquires the read
lock if a writer does not hold the lock and there are no writers
blocked on the lock.
The calling thread does not acquire the lock if a writer holds the lock
or if writers of higher or equal priority are blocked on the lock; oth‐
erwise, the calling thread acquires the lock. If the read lock is not
acquired, the calling thread blocks until it can acquire the lock.
A thread can hold multiple concurrent read locks on rwlock (that is,
successfully call the pthread_rwlock_rdlock() function n times). If so,
the thread must perform matching unlocks (that is, it must call the
pthread_rwlock_unlock() function n times).
The maximum number of concurrent read locks that a thread can hold on
one read-write lock is currently set at 100,000, though this number
could change in a future release. There is no imposed limit on the num‐
ber of different threads that can apply a read lock to one read-write
lock.
The pthread_rwlock_tryrdlock() function applies a read lock like the
pthread_rwlock_rdlock() function, with the exception that the function
fails if the equivalent pthread_rwlock_rdlock() call would have blocked
the calling thread. In no case will the pthread_rwlock_tryrdlock()
function ever block. It always either acquires the lock or fails and
returns immediately.
Results are undefined if any of these functions are called with an
uninitialized read-write lock.
If a signal is delivered to a thread waiting for a read-write lock for
reading, upon return from the signal handler the thread resumes waiting
for the read-write lock for reading as if it was not interrupted.
RETURN VALUES
If successful, the pthread_rwlock_rdlock() function returns 0. Other‐
wise, an error number is returned to indicate the error.
The pthread_rwlock_tryrdlock() function returns 0 if the lock for read‐
ing on the read-write lock object referenced by rwlock is acquired.
Otherwise an error number is returned to indicate the error.
ERRORS
The pthread_rwlock_rdlock() and pthread_rwlock_tryrdlock() functions
will fail if:
EAGAIN The read lock could not be acquired because the maximum num‐
ber of read locks by the current thread for rwlock has been
exceeded.
The pthread_rwlock_rdlock() function will fail if:
EDEADLK The current thread already owns the read-write lock for
writing.
The pthread_rwlock_tryrdlock() function will fail if:
EBUSY The read-write lock could not be acquired for reading because
a writer holds the lock or a writer with the appropriate pri‐
ority was blocked on it.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelMT-Safe _ Stan‐
dardSee standards(7).
SEE ALSO
pthread_rwlock_init(3C), pthread_rwlock_unlock(3C),
pthread_rwlock_wrlock(3C), pthread_rwlockattr_init(3C), attributes(7),
standards(7)
Oracle Solaris 11.4 28 Nov 2017 pthread_rwlock_rdlock(3C)