MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions            pthreadrwlockrdlock(3C)



NAME
     pthreadrwlockrdlock, pthreadrwlocktryrdlock  -  lock  or
     attempt to lock read-write lock object for reading

SYNOPSIS
     cc -mt [ flag... ] file... -lpthread [ library... ]
     #include 

     int pthreadrwlockrdlock(pthreadrwlockt *rwlock);


     int pthreadrwlocktryrdlock(pthreadrwlockt *rwlock);


DESCRIPTION
     The pthreadrwlockrdlock() function applies a read lock  to
     the  read-write  lock  referenced  by  rwlock.   The calling
     thread acquires the read lock if a writer does not hold  the
     lock and there are no writers blocked on the lock.


     The calling thread does not acquire the  lock  if  a  writer
     holds the lock or if writers of higher or equal priority are
     blocked on the lock; otherwise, the calling thread  acquires
     the  lock.  If  the  read  lock is not acquired, the calling
     thread blocks until it can acquire the lock.


     A thread can hold multiple concurrent read locks  on  rwlock
     (that  is,  successfully  call  the  pthreadrwlockrdlock()
     function n times). If so, the thread must  perform  matching
     unlocks  (that is, it must call the  pthreadrwlockunlock()
     function n times).


     The maximum number of concurrent read locks  that  a  thread
     can hold on one read-write lock is currently set at 100,000,
     though this number could change in a future  release.  There
     is  no imposed limit on the number of different threads that
     can apply a read lock to one read-write lock.


     The pthreadrwlocktryrdlock() function applies a read  lock
     like  the  pthreadrwlockrdlock() function, with the excep-
     tion   that   the   function   fails   if   the   equivalent
     pthreadrwlockrdlock()  call would have blocked the calling
     thread.  In  no  case  will  the  pthreadrwlocktryrdlock()
     function  ever  bloc.  It always either acquires the lock or
     fails and returns immediately.






SunOS 5.11          Last change: 23 Mar 2005                    1






Standard C Library Functions            pthreadrwlockrdlock(3C)



     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 reading, upon return from the signal handler
     the thread resumes waiting for the read-write lock for read-
     ing as if it was not interrupted.

RETURN VALUES
     If successful, the pthreadrwlockrdlock() function  returns
     0.  Otherwise,  an  error number is returned to indicate the
     error.


     The pthreadrwlocktryrdlock() function  returns  0  if  the
     lock for reading on the read-write lock object referenced by
     rwlock is acquired.  Otherwise an error number  is  returned
     to indicate the error.

ERORS
     The pthreadrwlockrdlock()  and  pthreadrwlocktryrdlock()
     functions will fail if:

     EAGAIN    The read lock could not be  acquired  because  the
               maximum number of read locks by the current thread
               for rwlock has been exceeded.



     The pthreadrwlockrdlock() function will fail if:

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



     The pthreadrwlocktryrdlock() function will fail if:

     EBUSY    The read-write lock could not be acquired for read-
              ing  because  a  writer  holds the lock or a writer
              with the appropriate priority was blocked on it.


ATRIBUTES
     See  attributes(5) for descriptions of the following  attri-
     butes:








SunOS 5.11          Last change: 23 Mar 2005                    2






Standard C Library Functions            pthreadrwlockrdlock(3C)



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Standard                    
    
     MT-Level                     MT-Safe                     
    


SEE ALSO
     pthreadrwlockinit(3C),          pthreadrwlockwrlock(3C),
     pthreadrwlockattrinit(3C),      pthreadrwlockunlock(3C),
     attributes(5), standards(5)










































SunOS 5.11          Last change: 23 Mar 2005                    3



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™