diff options
Diffstat (limited to 'man3p/sem_wait.3p')
-rw-r--r-- | man3p/sem_wait.3p | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/man3p/sem_wait.3p b/man3p/sem_wait.3p new file mode 100644 index 000000000..9b4c6419f --- /dev/null +++ b/man3p/sem_wait.3p @@ -0,0 +1,101 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "SEM_TRYWAIT" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" sem_trywait +.SH NAME +sem_trywait, sem_wait \- lock a semaphore (\fBREALTIME\fP) +.SH SYNOPSIS +.LP +\fB#include <semaphore.h> +.br +.sp +int sem_trywait(sem_t *\fP\fIsem\fP\fB); +.br +int sem_wait(sem_t *\fP\fIsem\fP\fB); \fP +\fB +.br +\fP +.SH DESCRIPTION +.LP +The \fIsem_trywait\fP() function shall lock the semaphore referenced +by \fIsem\fP only if the semaphore is currently not +locked; that is, if the semaphore value is currently positive. Otherwise, +it shall not lock the semaphore. +.LP +The \fIsem_wait\fP() function shall lock the semaphore referenced +by \fIsem\fP by performing a semaphore lock operation on +that semaphore. If the semaphore value is currently zero, then the +calling thread shall not return from the call to +\fIsem_wait\fP() until it either locks the semaphore or the call is +interrupted by a signal. +.LP +Upon successful return, the state of the semaphore shall be locked +and shall remain locked until the \fIsem_post\fP() function is executed +and returns successfully. +.LP +The \fIsem_wait\fP() function is interruptible by the delivery of +a signal. +.SH RETURN VALUE +.LP +The \fIsem_trywait\fP() and \fIsem_wait\fP() functions shall return +zero if the calling process successfully performed the +semaphore lock operation on the semaphore designated by \fIsem\fP. +If the call was unsuccessful, the state of the semaphore shall +be unchanged, and the function shall return a value of -1 and set +\fIerrno\fP to indicate the error. +.SH ERRORS +.LP +The \fIsem_trywait\fP() and \fIsem_wait\fP() functions shall fail +if: +.TP 7 +.B EAGAIN +The semaphore was already locked, so it cannot be immediately locked +by the \fIsem_trywait\fP() operation ( +\fIsem_trywait\fP() only). +.TP 7 +.B EINVAL +The \fIsem\fP argument does not refer to a valid semaphore. +.sp +.LP +The \fIsem_trywait\fP() and \fIsem_wait\fP() functions may fail if: +.TP 7 +.B EDEADLK +A deadlock condition was detected. +.TP 7 +.B EINTR +A signal interrupted this function. +.sp +.LP +\fIThe following sections are informative.\fP +.SH EXAMPLES +.LP +None. +.SH APPLICATION USAGE +.LP +Applications using these functions may be subject to priority inversion, +as discussed in the Base Definitions volume of +IEEE\ Std\ 1003.1-2001, Section 3.285, Priority Inversion. +.LP +The \fIsem_trywait\fP() and \fIsem_wait\fP() functions are part of +the Semaphores option and need not be provided on all +implementations. +.SH RATIONALE +.LP +None. +.SH FUTURE DIRECTIONS +.LP +None. +.SH SEE ALSO +.LP +\fIsemctl\fP() , \fIsemget\fP() , \fIsemop\fP() +, \fIsem_post\fP() , \fIsem_timedwait\fP() , the Base Definitions +volume of IEEE\ Std\ 1003.1-2001, \fI<semaphore.h>\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |