Mercurial > sdl-ios-xcode
view docs/html/sdlcreatesemaphore.html @ 809:dba98fb391e7
Date: Tue, 13 Jan 2004 19:25:37 +0300
From: Dmitry Yakimov
Subject: [SDL] [PATCH] SDL bug patch
Let me introduce 2 fixes to SDL.
1. Preventing great slowdown on fast machines while hardware
flipping (it's obviously bug).
2. Setting up 85 Hz of monitor if supported. The reason is that
Win98 by default sets lowest frequency 60 Hz.
And we can't set up maximum frequency because some users can have
wrong monitor drivers.
This is important for shareware and commercial programs.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Wed, 11 Feb 2004 16:10:16 +0000 |
parents | 355632dca928 |
children |
line wrap: on
line source
<HTML ><HEAD ><TITLE >SDL_CreateSemaphore</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_mutexV" HREF="sdlmutexv.html"><LINK REL="NEXT" TITLE="SDL_DestroySemaphore" HREF="sdldestroysemaphore.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="sdlmutexv.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="sdldestroysemaphore.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="SDLCREATESEMAPHORE" ></A >SDL_CreateSemaphore</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN7936" ></A ><H2 >Name</H2 >SDL_CreateSemaphore -- Creates a new semaphore and assigns an initial value to it.</DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN7939" ></A ><H2 >Synopsis</H2 ><DIV CLASS="FUNCSYNOPSIS" ><A NAME="AEN7940" ></A ><P ></P ><PRE CLASS="FUNCSYNOPSISINFO" >#include "SDL.h" #include "SDL_thread.h"</PRE ><P ><CODE ><CODE CLASS="FUNCDEF" >SDL_sem *<B CLASS="FSFUNC" >SDL_CreateSemaphore</B ></CODE >(Uint32 initial_value);</CODE ></P ><P ></P ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN7946" ></A ><H2 >Description</H2 ><P ><TT CLASS="FUNCTION" >SDL_CreateSemaphore()</TT > creates a new semaphore and initializes it with the value <TT CLASS="PARAMETER" ><I >initial_value</I ></TT >. Each locking operation on the semaphore by <A HREF="sdlsemwait.html" >SDL_SemWait</A >, <A HREF="sdlsemtrywait.html" >SDL_SemTryWait</A > or <A HREF="sdlsemwaittimeout.html" >SDL_SemWaitTimeout</A > will atomically decrement the semaphore value. The locking operation will be blocked if the semaphore value is not positive (greater than zero). Each unlock operation by <A HREF="sdlsempost.html" >SDL_SemPost</A > will atomically increment the semaphore value.</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN7955" ></A ><H2 >Return Value</H2 ><P >Returns a pointer to an initialized semaphore or <SPAN CLASS="RETURNVALUE" >NULL</SPAN > if there was an error.</P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN7959" ></A ><H2 >Examples</H2 ><P ><PRE CLASS="PROGRAMLISTING" >SDL_sem *my_sem; my_sem = SDL_CreateSemaphore(INITIAL_SEM_VALUE); if (my_sem == NULL) { return CREATE_SEM_FAILED; }</PRE ></P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN7963" ></A ><H2 >See Also</H2 ><P ><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="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="sdlmutexv.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="sdldestroysemaphore.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >SDL_mutexV</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_DestroySemaphore</TD ></TR ></TABLE ></DIV ></BODY ></HTML >