mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
Import Recast Navigation as third party dependency Credits go to Mikko Mononen memon at inside dot org
298 lines
No EOL
3.9 KiB
HTML
298 lines
No EOL
3.9 KiB
HTML
<HTML
|
|
><HEAD
|
|
><TITLE
|
|
>SDL_SemWait</TITLE
|
|
><META
|
|
NAME="GENERATOR"
|
|
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
|
"><LINK
|
|
REL="HOME"
|
|
TITLE="SDL Library Documentation"
|
|
HREF="index.html"><LINK
|
|
REL="UP"
|
|
TITLE="Multi-threaded Programming"
|
|
HREF="thread.html"><LINK
|
|
REL="PREVIOUS"
|
|
TITLE="SDL_DestroySemaphore"
|
|
HREF="sdldestroysemaphore.html"><LINK
|
|
REL="NEXT"
|
|
TITLE="SDL_SemTryWait"
|
|
HREF="sdlsemtrywait.html"></HEAD
|
|
><BODY
|
|
CLASS="REFENTRY"
|
|
BGCOLOR="#FFF8DC"
|
|
TEXT="#000000"
|
|
LINK="#0000ee"
|
|
VLINK="#551a8b"
|
|
ALINK="#ff0000"
|
|
><DIV
|
|
CLASS="NAVHEADER"
|
|
><TABLE
|
|
SUMMARY="Header navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TH
|
|
COLSPAN="3"
|
|
ALIGN="center"
|
|
>SDL Library Documentation</TH
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="left"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="sdldestroysemaphore.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="80%"
|
|
ALIGN="center"
|
|
VALIGN="bottom"
|
|
></TD
|
|
><TD
|
|
WIDTH="10%"
|
|
ALIGN="right"
|
|
VALIGN="bottom"
|
|
><A
|
|
HREF="sdlsemtrywait.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
></TABLE
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"></DIV
|
|
><H1
|
|
><A
|
|
NAME="SDLSEMWAIT"
|
|
></A
|
|
>SDL_SemWait</H1
|
|
><DIV
|
|
CLASS="REFNAMEDIV"
|
|
><A
|
|
NAME="AEN8023"
|
|
></A
|
|
><H2
|
|
>Name</H2
|
|
>SDL_SemWait -- Lock a semaphore and suspend the thread if the semaphore value is zero.</DIV
|
|
><DIV
|
|
CLASS="REFSYNOPSISDIV"
|
|
><A
|
|
NAME="AEN8026"
|
|
></A
|
|
><H2
|
|
>Synopsis</H2
|
|
><DIV
|
|
CLASS="FUNCSYNOPSIS"
|
|
><A
|
|
NAME="AEN8027"
|
|
></A
|
|
><P
|
|
></P
|
|
><PRE
|
|
CLASS="FUNCSYNOPSISINFO"
|
|
>#include "SDL.h"
|
|
#include "SDL_thread.h"</PRE
|
|
><P
|
|
><CODE
|
|
><CODE
|
|
CLASS="FUNCDEF"
|
|
>int <B
|
|
CLASS="FSFUNC"
|
|
>SDL_SemWait</B
|
|
></CODE
|
|
>(SDL_sem *sem);</CODE
|
|
></P
|
|
><P
|
|
></P
|
|
></DIV
|
|
></DIV
|
|
><DIV
|
|
CLASS="REFSECT1"
|
|
><A
|
|
NAME="AEN8033"
|
|
></A
|
|
><H2
|
|
>Description</H2
|
|
><P
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_SemWait()</TT
|
|
> suspends the calling thread until either
|
|
the semaphore pointed to by <TT
|
|
CLASS="PARAMETER"
|
|
><I
|
|
>sem</I
|
|
></TT
|
|
> has a positive value,
|
|
the call is interrupted by a signal or error. If the call is successful it
|
|
will atomically decrement the semaphore value.</P
|
|
><P
|
|
>After <TT
|
|
CLASS="FUNCTION"
|
|
>SDL_SemWait()</TT
|
|
> is successful, the semaphore
|
|
can be released and its count atomically incremented by a successful call to
|
|
<A
|
|
HREF="sdlsempost.html"
|
|
>SDL_SemPost</A
|
|
>.</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="REFSECT1"
|
|
><A
|
|
NAME="AEN8041"
|
|
></A
|
|
><H2
|
|
>Return Value</H2
|
|
><P
|
|
>Returns <SPAN
|
|
CLASS="RETURNVALUE"
|
|
>0</SPAN
|
|
> if successful or
|
|
<SPAN
|
|
CLASS="RETURNVALUE"
|
|
>-1</SPAN
|
|
> if there was an error (leaving the semaphore unchanged).</P
|
|
></DIV
|
|
><DIV
|
|
CLASS="REFSECT1"
|
|
><A
|
|
NAME="AEN8046"
|
|
></A
|
|
><H2
|
|
>Examples</H2
|
|
><P
|
|
><PRE
|
|
CLASS="PROGRAMLISTING"
|
|
>if (SDL_SemWait(my_sem) == -1) {
|
|
return WAIT_FAILED;
|
|
}
|
|
|
|
...
|
|
|
|
SDL_SemPost(my_sem);</PRE
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="REFSECT1"
|
|
><A
|
|
NAME="AEN8050"
|
|
></A
|
|
><H2
|
|
>See Also</H2
|
|
><P
|
|
><A
|
|
HREF="sdlcreatesemaphore.html"
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_CreateSemaphore</TT
|
|
></A
|
|
>,
|
|
<A
|
|
HREF="sdldestroysemaphore.html"
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_DestroySemaphore</TT
|
|
></A
|
|
>,
|
|
<A
|
|
HREF="sdlsemtrywait.html"
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_SemTryWait</TT
|
|
></A
|
|
>,
|
|
<A
|
|
HREF="sdlsemwaittimeout.html"
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_SemWaitTimeout</TT
|
|
></A
|
|
>,
|
|
<A
|
|
HREF="sdlsempost.html"
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_SemPost</TT
|
|
></A
|
|
>,
|
|
<A
|
|
HREF="sdlsemvalue.html"
|
|
><TT
|
|
CLASS="FUNCTION"
|
|
>SDL_SemValue</TT
|
|
></A
|
|
></P
|
|
></DIV
|
|
><DIV
|
|
CLASS="NAVFOOTER"
|
|
><HR
|
|
ALIGN="LEFT"
|
|
WIDTH="100%"><TABLE
|
|
SUMMARY="Footer navigation table"
|
|
WIDTH="100%"
|
|
BORDER="0"
|
|
CELLPADDING="0"
|
|
CELLSPACING="0"
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="sdldestroysemaphore.html"
|
|
ACCESSKEY="P"
|
|
>Prev</A
|
|
></TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="index.html"
|
|
ACCESSKEY="H"
|
|
>Home</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="sdlsemtrywait.html"
|
|
ACCESSKEY="N"
|
|
>Next</A
|
|
></TD
|
|
></TR
|
|
><TR
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="left"
|
|
VALIGN="top"
|
|
>SDL_DestroySemaphore</TD
|
|
><TD
|
|
WIDTH="34%"
|
|
ALIGN="center"
|
|
VALIGN="top"
|
|
><A
|
|
HREF="thread.html"
|
|
ACCESSKEY="U"
|
|
>Up</A
|
|
></TD
|
|
><TD
|
|
WIDTH="33%"
|
|
ALIGN="right"
|
|
VALIGN="top"
|
|
>SDL_SemTryWait</TD
|
|
></TR
|
|
></TABLE
|
|
></DIV
|
|
></BODY
|
|
></HTML
|
|
> |