rw_unlock(3synch)
rw_unlock --
release a reader-writer lock
Synopsis
   cc [options] -Kthread file
   
   #include <synch.h>
   
   int rw_unlock(rwlock_t *lock);
Description
rw_unlock releases a reader-writer lock
previously acquired by rw_rdlock, rw_wrlock,
rw_tryrdlock, or rw_trywrlock.
The behavior differs according to whether the caller
is a reader or a writer:
- 
When a writer calls rw_unlock,
the lock is unlocked.
 - 
When a reader calls rw_unlock,
the reader count is decremented.
If the reader count is zero,
rw_unlock unlocks the lock,
otherwise,
the lock is not unlocked.
 
When rw_unlock unlocks the lock,
the first waiter (reader or writer) is activated.
- 
If the thread activated is a reader,
all subsequent readers are activated
(up to the next writer or end of queue)
and the count of readers holding the lock is changed to reflect this.
 - 
If the thread activated is a writer,
no other threads are activated
and the lock is marked as being held by a writer.
 
lock must previously have been initialized
(see rwlock_init(3synch)).
Parameters
lock- 
pointer to the lock to be released
 
Return values
rw_unlock returns zero for success
and an error number for failure.
Errors
If any the following conditions is detected,
rw_unlock fails and returns the corresponding value:
EINVAL- 
invalid argument specified
 
ENOLCK- 
lock not locked
 
References
Intro(3synch),
rwlock(3synch),
rwlock_destroy(3synch),
rwlock_init(3synch),
rw_rdlock(3synch),
rw_tryrdlock(3synch),
rw_trywrlock(3synch),
rw_wrlock(3synch)
© 2004 The SCO Group, Inc.  All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004