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
|