Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       pthread_rwlock_trywrlock,  pthread_rwlock_wrlock  -  lock  a  read-write  lock  object for
       writing

SYNOPSIS

       #include <pthread.h>

       int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock);
       int pthread_rwlock_wrlock(pthread_rwlock_t *rwlock);

DESCRIPTION

       The  pthread_rwlock_trywrlock()   function   shall   apply   a   write   lock   like   the
       pthread_rwlock_wrlock()  function,  with the exception that the function shall fail if any
       thread currently holds rwlock (for reading or writing).

       The pthread_rwlock_wrlock() function shall apply a  write  lock  to  the  read-write  lock
       referenced  by  rwlock.  The  calling  thread  acquires  the write lock if no other thread
       (reader or writer) holds the read-write lock rwlock. Otherwise,  the  thread  shall  block
       until  it can acquire the lock. The calling thread may deadlock if at the time the call is
       made it holds the read-write lock (whether a read or write lock).

       Implementations may favor writers over readers to avoid writer starvation.

       Results are undefined if any of these functions are called  with  an  uninitialized  read-
       write lock.

       If  a  signal  is  delivered  to  a thread waiting for a read-write lock for writing, upon
       return from the signal handler the thread resumes waiting  for  the  read-write  lock  for
       writing as if it was not interrupted.

RETURN VALUE

       The  pthread_rwlock_trywrlock()  function shall return zero if the lock for writing on the
       read-write lock object referenced by rwlock is acquired. Otherwise, an error number  shall
       be returned to indicate the error.

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

ERRORS

       The pthread_rwlock_trywrlock() function shall fail if:

       EBUSY  The read-write lock could not be acquired for writing because it was already locked
              for reading or writing.

       The pthread_rwlock_trywrlock() and pthread_rwlock_wrlock() functions may fail if:

       EINVAL The  value  specified  by  rwlock  does not refer to an initialized read-write lock
              object.

       The pthread_rwlock_wrlock() function may fail if:

       EDEADLK
              The current thread already owns the read-write lock for writing or reading.

       These functions shall not return an error code of [EINTR].

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       Applications using these functions may be subject to priority inversion, as  discussed  in
       the Base Definitions volume of IEEE Std 1003.1-2001, Section 3.285, Priority Inversion.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       pthread_rwlock_destroy()   ,   pthread_rwlock_rdlock()  ,  pthread_rwlock_timedrdlock()  ,
       pthread_rwlock_timedwrlock() , pthread_rwlock_tryrdlock() , pthread_rwlock_unlock() ,  the
       Base Definitions volume of IEEE Std 1003.1-2001, <pthread.h>

COPYRIGHT

       Portions  of  this  text  are  reprinted  and  reproduced in electronic form from IEEE Std
       1003.1, 2003 Edition, Standard for Information Technology  --  Portable  Operating  System
       Interface  (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
       the Institute of Electrical and Electronics Engineers, Inc and  The  Open  Group.  In  the
       event  of  any  discrepancy  between this version and the original IEEE and The Open Group
       Standard, the original IEEE and The Open Group  Standard  is  the  referee  document.  The
       original Standard can be obtained online at http://www.opengroup.org/unix/online.html .