MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Standard C Library Functions                    semtimedwait(3C)



NAME
     semtimedwait, semreltimedwaitnp - lock a semaphore

SYNOPSIS
     #include 
     #include 

     int semtimedwait(semt *restrict sem,
          const struct timespec *restrict abstimeout);


     int semreltimedwaitnp(semt *restrict sem,
          const struct timespec *restrict reltimeout);


DESCRIPTION
     The semtimedwait() function locks the semaphore  referenced
     by  sem  as  in  the  semwait(3C) function. However, if the
     semaphore cannot be locked without waiting for another  pro-
     cess  or  thread  to  unlock  the  semaphore by performing a
     sempost(3C) function, this  wait  is  terminated  when  the
     specified timeout expires.


     The  semreltimedwaitnp()  function  is  identical  to  the
     semtimedwait()  function, except that the timeout is speci-
     fied as a relative time interval.


     For semtimedwait(), the timeout expires when  the  absolute
     time  specified  by  abstimeout  passes, as measured by the
     CLOCKREALTIME clock (that is, when the value of that  clock
     equals  or  exceeds  abstimeout),  or  if the absolute time
     specified by abstimeout has already been passed at the time
     of the call.


     For semreltimedwaitnp(), the timeout expires when the time
     interval specified by reltimeout passes, as measured by the
     CLOCKREALTIME clock, or if the time interval  specified  by
     reltimeout is negative at the time of the call.


     The resolution of the  timeout  is  the  resolution  of  the
     CLOCKREALTIME clock. The timespec data type is defined as a
     structure in the  header.


     Under no circumstance does the function fail with a  timeout
     if  the semaphore can be locked immediately. The validity of
     the abstimeout need not be checked if the semaphore can  be
     locked immediately.



SunOS 5.11           Last change: 5 Feb 2008                    1






Standard C Library Functions                    semtimedwait(3C)



RETURN VALUES
     The  semtimedwait()  and  semreltimedwaitnp()   functions
     return  0  if the calling process successfully performed the
     semaphore lock operation on the semaphore designated by sem.
     If  the call was unsuccessful, the state of the semaphore is
     be unchanged and the function returns -1 and sets  errno  to
     indicate the error.

ERORS
     The semtimedwait() and semreltimedwaitnp() functions will
     fail if:

     EINVAL       The sem argument does  not  refer  to  a  valid
                  semaphore.


     EINVAL       The process or thread would have  blocked,  and
                  the  timeout  parameter specified a nanoseconds
                  field value less than zero or greater  than  or
                  equal to 1,000 million.


     ETIMEDOUT    The semaphore could not be  locked  before  the
                  specified timeout expired.



     The semtimedwait() and semreltimedwaitnp() functions  may
     fail if:

     EDEADLK    A deadlock condition was detected.


     EINTR      A signal interrupted this function.


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
















SunOS 5.11           Last change: 5 Feb 2008                    2






Standard C Library Functions                    semtimedwait(3C)



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Commmitted                  
    
     MT-Level                     MT-Safe                     
    
     Standard                     See below.                  
    



     For semtimedwait(), see standards(5).

SEE ALSO
     semctl(2),  semget(2),  semop(2),   time(2),   sempost(3C),
     semtrywait(3C)semwait(3C), attributes(5), standards(5)






































SunOS 5.11           Last change: 5 Feb 2008                    3



OpenSolaris man pages main menu

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