Mercurial > sdl-ios-xcode
view docs/html/sdlsemtrywait.html @ 3092:cad1aefa2ed9
Date: Thu, 12 Mar 2009 15:14:38 +0200
From: "Mike Gorchak"
Subject: New QNX patches
In photon.tar.gz there are new files to be placed into ./src/video/photon/
directory.
qnx3.diff - new patches for QNX support. Since I've found a lot of bugs in
the new GF QNX Graphics Framework and I'm suspended development for GF
driver until already found bugs will be fixed and switched to Photon driver
implementation.
sdl.diff - I've found that renderer creation result has not been checked and
SDL shows error like: "there is no current renderer", now SDL will show
correct error which was set be renderer.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 17 Mar 2009 03:24:22 +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 >