*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> pthread_rwlock_tryrdlock (3)              
Title
Content
Arch
Section
 

PTHREAD_RWLOCK_RDLOCK(3)

Contents


NAME    [Toc]    [Back]

     pthread_rwlock_rdlock, pthread_rwlock_tryrdlock - acquire  a
read/write
     lock for reading

SYNOPSIS    [Toc]    [Back]

     #include <pthread.h>

     int
     pthread_rwlock_rdlock(pthread_rwlock_t *lock);

     int
     pthread_rwlock_tryrdlock(pthread_rwlock_t *lock);

DESCRIPTION    [Toc]    [Back]

     The pthread_rwlock_rdlock() function acquires a read lock on
lock provided
 that lock is not presently held for writing and no writer
threads are
     presently  blocked  on the lock.  If the read lock cannot be
immediately
     acquired, the calling thread blocks until it can acquire the
lock.

     The  pthread_rwlock_tryrdlock()  function  performs the same
action, but
     does not block if the lock cannot  be  immediately  obtained
(i.e., the lock
     is held for writing or there are waiting writers).

     A thread may hold multiple concurrent read locks.  If so,
     pthread_rwlock_unlock()  must  be  called once for each lock
obtained.

     The results of acquiring  a  read  lock  while  the  calling
thread holds a
     write lock are undefined.

IMPLEMENTATION NOTES    [Toc]    [Back]

     To prevent writer starvation, writers are favored over readers.

RETURN VALUES    [Toc]    [Back]

     If    successful,    the     pthread_rwlock_rdlock()     and
pthread_rwlock_tryrdlock()
     functions  will return zero.  Otherwise an error number will
be returned
     to indicate the error.

ERRORS    [Toc]    [Back]

     The pthread_rwlock_tryrdlock() function will fail if:

     [EBUSY]       The lock could not be acquired because a writer holds the
                   lock or was blocked on it.

     The  pthread_rwlock_rdlock()  and pthread_rwlock_tryrdlock()
functions may
     fail if:

     [EAGAIN]      The lock could not  be  acquired  because  the
maximum number
                   of  read locks against lock has been exceeded.

     [EDEADLK]     The current thread already owns lock for writing.

     [EINVAL]      The value specified by lock is invalid.

     [ENOMEM]       Insufficient  memory exists to initialize the
lock (applies
                   to statically initialized locks only).

SEE ALSO    [Toc]    [Back]

      
      
     pthread_rwlock_init(3), pthread_rwlock_trywrlock(3),
     pthread_rwlock_unlock(3), pthread_rwlock_wrlock(3)

STANDARDS    [Toc]    [Back]

     The pthread_rwlock_rdlock()  and  pthread_rwlock_tryrdlock()
functions are
     expected to conform to Version 2 of the Single UNIX Specification.

HISTORY    [Toc]    [Back]

     The  pthread_rwlock_rdlock()  function  first  appeared   in
FreeBSD 3.0 and
     OpenBSD 2.5.

OpenBSD      3.6                          August      4,     1998
[ Back ]
 Similar pages
Name OS Title
tis_read_trylock Tru64 Attempts to acquire a read-write lock for read access and does not wait if the lock cannot be immedi...
pthread_rwlock_rdlock IRIX lock a read-write lock object for reading
pthread_rwlock_wrlock OpenBSD acquire a read/write lock for writing
pthread_rwlock_trywrlock FreeBSD acquire a read/write lock for writing
pthread_rwlock_trywrlock OpenBSD acquire a read/write lock for writing
pthread_rwlock_wrlock FreeBSD acquire a read/write lock for writing
pthread_rwlock_trywrlock Tru64 Attempts to acquire a readwrite lock for write access without waiting
pthread_rwlock_tryrdlock Tru64 Attempts to acquire a readwrite lock for read access without waiting
pthread_rwlock_wrlock IRIX lock a read-write lock object for writing
tis_write_unlock Tru64 Unlocks the specified read-write lock that was acquired for write access
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service