<HTML
><HEAD
><TITLE
>SDL_SemWaitTimeout</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_SemTryWait"
HREF="sdlsemtrywait.html"><LINK
REL="NEXT"
TITLE="SDL_SemPost"
HREF="sdlsempost.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="sdlsemtrywait.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="sdlsempost.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="SDLSEMWAITTIMEOUT"
></A
>SDL_SemWaitTimeout</H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN8120"
></A
><H2
>Name</H2
>SDL_SemWaitTimeout&nbsp;--&nbsp;Lock a semaphore, but only wait up to a specified maximum time.</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN8123"
></A
><H2
>Synopsis</H2
><DIV
CLASS="FUNCSYNOPSIS"
><A
NAME="AEN8124"
></A
><P
></P
><PRE
CLASS="FUNCSYNOPSISINFO"
>#include "SDL.h"
#include "SDL_thread.h"</PRE
><P
><CODE
><CODE
CLASS="FUNCDEF"
>int <B
CLASS="FSFUNC"
>SDL_SemWaitTimeout</B
></CODE
>(SDL_sem *sem, Uint32 timeout);</CODE
></P
><P
></P
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8130"
></A
><H2
>Description</H2
><P
><TT
CLASS="FUNCTION"
>SDL_SemWaitTimeout()</TT
> is a varient of
<A
HREF="sdlsemwait.html"
>SDL_SemWait</A
>
with a maximum timeout value.
If the value of the semaphore pointed to by <TT
CLASS="PARAMETER"
><I
>sem</I
></TT
> is
positive (greater than zero) it will atomically decrement the semaphore value
and return 0, otherwise it will wait up to <TT
CLASS="PARAMETER"
><I
>timeout</I
></TT
>
milliseconds trying to lock the semaphore. This function is to be avoided if
possible since on some platforms it is implemented by polling the semaphore
every millisecond in a busy loop.</P
><P
>After <TT
CLASS="FUNCTION"
>SDL_SemWaitTimeout()</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="AEN8140"
></A
><H2
>Return Value</H2
><P
>Returns <SPAN
CLASS="RETURNVALUE"
>0</SPAN
> if the semaphore was successfully locked or
either <SPAN
CLASS="RETURNVALUE"
>SDL_MUTEX_TIMEDOUT</SPAN
> or <SPAN
CLASS="RETURNVALUE"
>-1</SPAN
>
if the timeout period was exceeded or there was an error, respectivly.</P
><P
>If the semaphore was not successfully locked, the semaphore will be unchanged.</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8147"
></A
><H2
>Examples</H2
><P
><PRE
CLASS="PROGRAMLISTING"
>res = SDL_SemWaitTimeout(my_sem, WAIT_TIMEOUT_MILLISEC);

if (res == SDL_MUTEX_TIMEDOUT) {
        return TRY_AGAIN;
}
if (res == -1) {
        return WAIT_ERROR;
}

...

SDL_SemPost(my_sem);</PRE
></P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN8151"
></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="sdlsemwait.html"
><TT
CLASS="FUNCTION"
>SDL_SemWait</TT
></A
>,
<A
HREF="sdlsemtrywait.html"
><TT
CLASS="FUNCTION"
>SDL_SemTryWait</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="sdlsemtrywait.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="sdlsempost.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>SDL_SemTryWait</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_SemPost</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>