# pthread_rwlock_unlock

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           pthread_rwlock_unlock — unlock a read-write lock object
    


## SYNOPSIS



           #include <pthread.h>
    
           int pthread_rwlock_unlock(pthread_rwlock_t *_rwlock_);
    


## DESCRIPTION



           The _pthread_rwlock_unlock_() function shall release a lock held on
           the read-write lock object referenced by _rwlock_.  Results are
           undefined if the read-write lock _rwlock_ is not held by the calling
           thread.
    
           If this function is called to release a read lock from the read-
           write lock object and there are other read locks currently held on
           this read-write lock object, the read-write lock object remains in
           the read locked state. If this function releases the last read
           lock for this read-write lock object, the read-write lock object
           shall be put in the unlocked state with no owners.
    
           If this function is called to release a write lock for this read-
           write lock object, the read-write lock object shall be put in the
           unlocked state.
    
           If there are threads blocked on the lock when it becomes
           available, the scheduling policy shall determine which thread(s)
           shall acquire the lock.  If the Thread Execution Scheduling option
           is supported, when threads executing with the scheduling policies
           SCHED_FIFO, SCHED_RR, or SCHED_SPORADIC are waiting on the lock,
           they shall acquire the lock in priority order when the lock
           becomes available. For equal priority threads, write locks shall
           take precedence over read locks.  If the Thread Execution
           Scheduling option is not supported, it is implementation-defined
           whether write locks take precedence over read locks.
    
           Results are undefined if this function is called with an
           uninitialized read-write lock.
    


## RETURN VALUE



           If successful, the _pthread_rwlock_unlock_() function shall return
           zero; otherwise, an error number shall be returned to indicate the
           error.
    


## ERRORS



           The _pthread_rwlock_unlock_() function shall not return an error
           code of **[EINTR]**.
    
           _The following sections are informative._
    


## EXAMPLES



           None.
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           If an implementation detects that the value specified by the
           _rwlock_ argument to _pthread_rwlock_unlock_() does not refer to an
           initialized read-write lock object, it is recommended that the
           function should fail and report an **[EINVAL]** error.
    
           If an implementation detects that the value specified by the
           _rwlock_ argument to _pthread_rwlock_unlock_() refers to a read-write
           lock object for which the current thread does not hold a lock, it
           is recommended that the function should fail and report an **[EPERM]**
           error.
    


## FUTURE DIRECTIONS



           None.
    


* * *