Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SEM_TIMEDWAIT(3)	 BSD Library Functions Manual	      SEM_TIMEDWAIT(3)

NAME
     sem_timedwait -- lock a semaphore

LIBRARY
     POSIX Threads Library (libpthread,	-lpthread)

SYNOPSIS
     #include <semaphore.h>

     int
     sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);

DESCRIPTION
     The sem_timedwait() function locks	the semaphore referenced by sem, as in
     the sem_wait(3) function.	However, if the	semaphore cannot be locked
     without waiting for another process or thread to unlock the semaphore by
     performing	a sem_post(3) function,	this wait will be terminated when the
     specified timeout expires.

     The timeout will expire when the absolute time specified by abs_timeout
     passes, as	measured by the	clock on which timeouts	are based (that	is,
     when the value of that clock equals or exceeds abs_timeout), or if	the
     absolute time specified by	abs_timeout has	already	been passed at the
     time of the call.

     Note that the timeout is based on the CLOCK_REALTIME clock.

     The validity of the abs_timeout is	not checked if the semaphore can be
     locked immediately.

RETURN VALUES
     The sem_timedwait() function returns zero if the calling process success-
     fully performed the semaphore lock	operation on the semaphore designated
     by	sem.  If the call was unsuccessful, the	state of the semaphore is un-
     changed, and the function returns a value of -1 and sets the global vari-
     able errno	to indicate the	error.

ERRORS
     The sem_timedwait() function will fail if:

     [EINVAL]		The sem	argument does not refer	to a valid semaphore,
			or the process or thread would have blocked, and the
			abs_timeout parameter specified	a nanoseconds field
			value less than	zero or	greater	than or	equal to 1000
			million.

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

     [EINTR]		A signal interrupted this function.

SEE ALSO
     sem_post(3), sem_trywait(3), sem_wait(3), sem(4)

STANDARDS
     The sem_timedwait() function conforms to IEEE Std 1003.1-2004
     ("POSIX.1").

HISTORY
     The function first	appeared in FreeBSD 5.0.

BSD				 March 3, 2008				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=sem_timedwait&sektion=3&manpath=FreeBSD+9.2-RELEASE>

home | help