Copyright Digital Equipment Corp. All rights reserved.

Description

   This routine releases a lock acquisition held on the read-write
   lock object referenced by rwlock. Results are undefined if rwlock
   is not held by the calling thread.

   If this routine is called to release a lock for read access on
   rwlock and the calling thread also currently holds other locks
   for read access on rwlock, the read-write lock object remains
   in the read locked state. If this routine releases the calling
   thread's last lock for read access on rwlock, the calling thread
   is no longer one of the owners of the lock object.

   If this routine is called to release a lock for write access
   on rwlock, the lock object is put in the unlocked state with no
   owners.

   If a call to this routine results in the read-write lock object
   becoming unlocked and there are multiple threads waiting to
   acquire that lock for write access, the Threads Library uses
   the scheduling policy of those waiting threads to determine
   which thread next acquires the lock object for write access. If
   there are multiple threads waiting to acquire the read-write lock
   object for read access, the Threads Library uses the scheduling
   policy of those waiting threads to determine the order in which
   those threads acquire the lock for read access. If there are
   multiple threads waiting to acquire the read-write lock object
   for both read and write access, it is unspecified whether a
   thread waiting for read access or for write access next acquires
   the lock object.

   If the read-write lock object referenced by rwlock is not
   initialized, the results of calling this routine are undefined.