Mercurial > sdl-ios-xcode
diff docs/html/sdlsemtrywait.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/sdlsemtrywait.html Thu Apr 26 16:45:43 2001 +0000 @@ -0,0 +1,311 @@ +<HTML +><HEAD +><TITLE +>SDL_SemTryWait</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_SemWait" +HREF="sdlsemwait.html"><LINK +REL="NEXT" +TITLE="SDL_SemWaitTimeout" +HREF="sdlsemwaittimeout.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="sdlsemwait.html" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="sdlsemwaittimeout.html" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><H1 +><A +NAME="SDLSEMTRYWAIT" +>SDL_SemTryWait</A +></H1 +><DIV +CLASS="REFNAMEDIV" +><A +NAME="AEN7444" +></A +><H2 +>Name</H2 +>SDL_SemTryWait -- Attempt to lock a semaphore but don't suspend the thread.</DIV +><DIV +CLASS="REFSYNOPSISDIV" +><A +NAME="AEN7447" +></A +><H2 +>Synopsis</H2 +><DIV +CLASS="FUNCSYNOPSIS" +><A +NAME="AEN7448" +></A +><P +></P +><PRE +CLASS="FUNCSYNOPSISINFO" +>#include "SDL.h" +#include "SDL_thread.h"</PRE +><P +><CODE +><CODE +CLASS="FUNCDEF" +>int <B +CLASS="FSFUNC" +>SDL_SemTryWait</B +></CODE +>(SDL_sem *sem);</CODE +></P +><P +></P +></DIV +></DIV +><DIV +CLASS="REFSECT1" +><A +NAME="AEN7454" +></A +><H2 +>Description</H2 +><P +><TT +CLASS="FUNCTION" +>SDL_SemTryWait</TT +> is a non-blocking varient of +<A +HREF="sdlsemwait.html" +><TT +CLASS="FUNCTION" +>SDL_SemWait</TT +></A +>. If the value of the semaphore +pointed to by <TT +CLASS="PARAMETER" +><I +>sem</I +></TT +> is positive it will atomically +decrement the semaphore value and return 0, otherwise it will return +<SPAN +CLASS="RETURNVALUE" +>SDL_MUTEX_TIMEOUT</SPAN +> instead of suspending the thread.</P +><P +>After <TT +CLASS="FUNCTION" +>SDL_SemTryWait</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="AEN7465" +></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 thread would have suspended 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="AEN7472" +></A +><H2 +>Examples</H2 +><P +><PRE +CLASS="PROGRAMLISTING" +>res = SDL_SemTryWait(my_sem); + +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="AEN7476" +></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="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 +WIDTH="100%" +BORDER="0" +CELLPADDING="0" +CELLSPACING="0" +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +><A +HREF="sdlsemwait.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="sdlsemwaittimeout.html" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>SDL_SemWait</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="thread.html" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>SDL_SemWaitTimeout</TD +></TR +></TABLE +></DIV +></BODY +></HTML +> \ No newline at end of file