Mercurial > sdl-ios-xcode
view docs/html/sdlsemwait.html @ 1795:398ac0f88e4d
Fixed bug #220
The AltiVec blitters don't compile, since they require __VEC__ to be enabled in
order for the compiler to understand "vector" and friends (i.e. do AltiVec)
But you don't want to turn AltiVec on globally, since then the code would only
run on a G4 (there are already runtime tests, before using the AltiVec
variants)
The solution here is to enable AltiVec locally, for the actual AltiVec code.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 09 May 2006 15:09:47 +0000 |
parents | 355632dca928 |
children |
line wrap: on
line source
<HTML ><HEAD ><TITLE >SDL_SemWait</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_DestroySemaphore" HREF="sdldestroysemaphore.html"><LINK REL="NEXT" TITLE="SDL_SemTryWait" HREF="sdlsemtrywait.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="sdldestroysemaphore.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="sdlsemtrywait.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="SDLSEMWAIT" ></A >SDL_SemWait</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN8023" ></A ><H2 >Name</H2 >SDL_SemWait -- Lock a semaphore and suspend the thread if the semaphore value is zero.</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN8026" ></A ><H2 >Synopsis</H2 ><DIV CLASS="FUNCSYNOPSIS" ><A NAME="AEN8027" ></A ><P ></P ><PRE CLASS="FUNCSYNOPSISINFO" >#include "SDL.h" #include "SDL_thread.h"</PRE ><P ><CODE ><CODE CLASS="FUNCDEF" >int <B CLASS="FSFUNC" >SDL_SemWait</B ></CODE >(SDL_sem *sem);</CODE ></P ><P ></P ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN8033" ></A ><H2 >Description</H2 ><P ><TT CLASS="FUNCTION" >SDL_SemWait()</TT > suspends the calling thread until either the semaphore pointed to by <TT CLASS="PARAMETER" ><I >sem</I ></TT > has a positive value, the call is interrupted by a signal or error. If the call is successful it will atomically decrement the semaphore value.</P ><P >After <TT CLASS="FUNCTION" >SDL_SemWait()</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="AEN8041" ></A ><H2 >Return Value</H2 ><P >Returns <SPAN CLASS="RETURNVALUE" >0</SPAN > if successful or <SPAN CLASS="RETURNVALUE" >-1</SPAN > if there was an error (leaving the semaphore unchanged).</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN8046" ></A ><H2 >Examples</H2 ><P ><PRE CLASS="PROGRAMLISTING" >if (SDL_SemWait(my_sem) == -1) { return WAIT_FAILED; } ... SDL_SemPost(my_sem);</PRE ></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN8050" ></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="sdlsemtrywait.html" ><TT CLASS="FUNCTION" >SDL_SemTryWait</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="sdldestroysemaphore.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="sdlsemtrywait.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >SDL_DestroySemaphore</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_SemTryWait</TD ></TR ></TABLE ></DIV ></BODY ></HTML >