Mercurial > sdl-ios-xcode
diff docs/html/sdlsemwaittimeout.html @ 0:74212992fb08
Initial revision
author | Sam Lantinga <slouken@lokigames.com> |
---|---|
date | Thu, 26 Apr 2001 16:45:43 +0000 |
parents | |
children | 55f1f1b3e27d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/html/sdlsemwaittimeout.html Thu Apr 26 16:45:43 2001 +0000 @@ -0,0 +1,314 @@ +<HTML +><HEAD +><TITLE +>SDL_SemWaitTimeout</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.61 +"><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 +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" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="sdlsempost.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><H1 +><A +NAME="SDLSEMWAITTIMEOUT" +>SDL_SemWaitTimeout</A +></H1 +><DIV +CLASS="REFNAMEDIV" +><A +NAME="AEN7495" +></A +><H2 +>Name</H2 +>SDL_SemWaitTimeout -- Lock a semaphore, but only wait up to a specified maximum time.</DIV +><DIV +CLASS="REFSYNOPSISDIV" +><A +NAME="AEN7498" +></A +><H2 +>Synopsis</H2 +><DIV +CLASS="FUNCSYNOPSIS" +><A +NAME="AEN7499" +></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="AEN7505" +></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="AEN7515" +></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_TIMEOUT</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="AEN7522" +></A +><H2 +>Examples</H2 +><P +><PRE +CLASS="PROGRAMLISTING" +>res = SDL_SemWaitTimeout(my_sem, WAIT_TIMEOUT_MILLISEC); + +if (res == SDL_MUTEX_TIMEOUT) { + return TRY_AGAIN; +} +if (res == -1) { + return WAIT_ERROR; +} + +... + +SDL_SemPost(my_sem);</PRE +></P +></DIV +><DIV +CLASS="REFSECT1" +><A +NAME="AEN7526" +></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 +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="sdlsemtrywait.html" +>Prev</A +></TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="index.html" +>Home</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +><A +HREF="sdlsempost.html" +>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" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>SDL_SemPost</TD +></TR +></TABLE +></DIV +></BODY +></HTML +> \ No newline at end of file