SVR5
RW_TRYRDLOCK(D3)
RW_TRYRDLOCK --
try to acquire a read/write lock in read mode
Synopsis
#include <sys/types.h>
#include <sys/ksynch.h>
#include <sys/ddi.h>
pl_t RW_TRYRDLOCK(rwlock_t *lockp, pl_t pl);
Description
If the lock specified by lockp is immediately available in read mode
(there is not a writer holding the lock and there are no waiting writers),
the RW_TRYRDLOCK function
sets the interrupt priority level in accordance with the
value specified by pl (if required by the implementation)
and acquires the lock in read mode.
If the lock is not immediately available in read mode,
RW_TRYLOCK returns without acquiring the lock.
Arguments
lockp-
Pointer to the read/write lock to be acquired.
pl-
The interrupt priority level to be set while the lock is held
by the caller.
Return values
If the lock is acquired, RW_TRYRDLOCK returns the previous interrupt
priority level (plbase - plhi).
If the lock is not acquired the value invpl is returned.
Usage
Because some implementations require that interrupts that might attempt
to acquire the lock be blocked on the processor on which the lock is
held, portable drivers must specify a pl value that is sufficient
to block out any interrupt handler that might attempt to acquire this lock.
See the description of the min_pl argument to
RW_ALLOC(D3)
for additional discussion and a list of the valid values for pl.
Implementations which do not require that the interrupt priority level be
raised during lock acquisition may choose to ignore this argument.
When called from interrupt level,
the pl argument must not specify
a priority level below the level at
which the interrupt handler is running.
RW_TRYRDLOCK may be used to acquire a lock
in a different order from the
order defined by the lock
hierarchy(D5).
Context and synchronization
Non-blockable, interrupt, user, or blockable
context.
Hardware applicability
All
Version applicability
ddi:
5, 5mp, 6, 6mp, 7, 7mp, 7.1, 7.1mp, 8, 8mp
References
RW_ALLOC(D3),
RW_DEALLOC(D3),
RW_RDLOCK(D3),
RW_TRYWRLOCK(D3),
RW_UNLOCK(D3),
RW_WRLOCK(D3)
``Spin locks (DDI)'' in HDK Technical Reference
19 June 2005
© 2005 The SCO Group, Inc. All rights reserved.
OpenServer 6 and UnixWare (SVR5) HDK - June 2005