summaryrefslogtreecommitdiffstats
path: root/man3p/sem_wait.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man3p/sem_wait.3p')
-rw-r--r--man3p/sem_wait.3p101
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 .