Mercurial > sdl-ios-xcode
view docs/html/sdlsemtrywait.html @ 2763:6fc50bdd88c0
Some cleanups on the new XInput code.
One or two things got moved around, but largely this is hooked up correctly
in the Unix configure system now: it can be dynamically loaded and fallback
gracefully if not available, or libXi can be directly linked to libSDL.
XInput support can be --disable'd from the configure script, too (defaults to
enabled).
Please note that while the framework is in place to gracefully fallback, the
current state of the source requires XInput. We'll need to adjust a few
things still to correct this.
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Wed, 17 Sep 2008 08:20:57 +0000 |
parents | 355632dca928 |
children |
line wrap: on
line source
<HTML ><HEAD ><TITLE >SDL_SemTryWait</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_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 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="sdlsemwait.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="sdlsemwaittimeout.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="SDLSEMTRYWAIT" ></A >SDL_SemTryWait</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN8069" ></A ><H2 >Name</H2 >SDL_SemTryWait -- Attempt to lock a semaphore but don't suspend the thread.</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN8072" ></A ><H2 >Synopsis</H2 ><DIV CLASS="FUNCSYNOPSIS" ><A NAME="AEN8073" ></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="AEN8079" ></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_TIMEDOUT</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="AEN8090" ></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 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="AEN8097" ></A ><H2 >Examples</H2 ><P ><PRE CLASS="PROGRAMLISTING" >res = SDL_SemTryWait(my_sem); 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="AEN8101" ></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 SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="sdlsemwait.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="sdlsemwaittimeout.html" ACCESSKEY="N" >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" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >SDL_SemWaitTimeout</TD ></TR ></TABLE ></DIV ></BODY ></HTML >