RW_RDLOCK(D3)RW_RDLOCK(D3)NAMERW_RDLOCK - acquire a read/write lock in read mode
SYNOPSIS
#include <sys/ksynch.h>
#include <sys/ddi.h>
void RW_RDLOCK(rwlock_t *lockp);
Arguments
lockp Pointer to the read/write lock to be acquired.
DESCRIPTIONRW_RDLOCK acquires the read/write lock specified by lockp in read mode.
If the lock is not immediately available in read mode, the caller is put
to sleep (the caller's execution is suspended and other processes may be
scheduled) until the lock becomes available to the caller, at which point
the caller wakes up and returns with the lock held. A read/write lock is
available in read mode when the lock is not held by any context in write
mode.
The caller will not be interrupted by signals while asleep waiting to
acquire the read/write lock.
Return Values
None
Level
Base only.
Synchronization Constraints
Can sleep.
Driver-defined basic locks may not be held across calls to this function.
Driver-defined sleep locks may be held across calls to this function
subject to the recursion restrictions described below.
Warnings
Multiple calls to RW_RDLOCK may be made to acquire the same lock, but a
context that holds a read/write lock in write mode cannot acquire the
same lock in read mode, and vice versa.
REFERENCESRW_ALLOC(D3), RW_INIT(D3), RW_DEALLOC(D3), RW_DESTROY(D3), RW_WRLOCK(D3),
RW_UNLOCK(D3),
Page 1