darwin-xnu/osfmk/man/semaphore_wait.html
<<
>>
Prefs
   1<h2>semaphore_wait</h2>
   2<hr>
   3<p>
   4<strong>Function</strong> - Wait on the specified semaphore.
   5<h3>SYNOPSIS</h3>
   6<pre>
   7<strong>kern_return_t   semaphore_wait</strong>
   8                <strong>(semaphore_t</strong>                          <var>semaphore</var><strong>);</strong>
   9</pre>
  10<h3>PARAMETERS</h3>
  11<dl>
  12<p>
  13<dt> <var>semaphore</var>
  14<dd>
  15[in send right] The port naming the semaphore that the wait operation is being performed upon.
  16</dl>
  17<h3>DESCRIPTION</h3>
  18<p>
  19The <strong>semaphore_wait</strong> function decrements the semaphore count. If the
  20semaphore count is negative after decrementing, the calling thread
  21blocks.  Device driver interrupt service routines (ISR) should never
  22execute <strong>semaphore_wait</strong>, since waiting on a semaphore at the ISR level
  23may, and often will, lead to a deadlock.
  24<h3>RETURN VALUES</h3>
  25<dl>
  26<p>
  27<dt> <strong>KERN_INVALID_ARGUMENT</strong>
  28<dd>
  29The specified semaphore is invalid.
  30<p>
  31<dt> <strong>KERN_TERMINATED</strong>
  32<dd>
  33The specified semaphore has been destroyed.
  34<p>
  35<dt> <strong>KERN_ABORTED</strong>
  36<dd>
  37The caller was blocked due to a negative count on the semaphore, and was
  38     awoken for a reason not related to the semaphore subsystem
  39     (e.g. <strong>thread_terminate</strong>).
  40<p>
  41<dt> <strong>KERN_SUCCESS</strong>
  42<dd>
  43The semaphore wait operation was successful.
  44</dl>
  45<h3>RELATED INFORMATION</h3>
  46<p>
  47Functions:
  48<a href="semaphore_create.html"><strong>semaphore_create</strong></a>,
  49<a href="semaphore_destroy.html"><strong>semaphore_destroy</strong></a>,
  50<a href="semaphore_signal.html"><strong>semaphore_signal</strong></a>,
  51<a href="semaphore_signal_all.html"><strong>semaphore_signal_all</strong></a>,
  52<a href="device_get_status.html"><strong>device_get_status</strong></a>.
  53
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.