diff options
Diffstat (limited to 'distrib/sdl-1.2.15/docs/html/thread.html')
-rw-r--r-- | distrib/sdl-1.2.15/docs/html/thread.html | 313 |
1 files changed, 313 insertions, 0 deletions
diff --git a/distrib/sdl-1.2.15/docs/html/thread.html b/distrib/sdl-1.2.15/docs/html/thread.html new file mode 100644 index 0000000..8ef2c92 --- /dev/null +++ b/distrib/sdl-1.2.15/docs/html/thread.html @@ -0,0 +1,313 @@ +<HTML +><HEAD +><TITLE +>Multi-threaded Programming</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="SDL Reference" +HREF="reference.html"><LINK +REL="PREVIOUS" +TITLE="SDL_CDtrack" +HREF="sdlcdtrack.html"><LINK +REL="NEXT" +TITLE="SDL_CreateThread" +HREF="sdlcreatethread.html"><META +NAME="KEYWORD" +CONTENT="threads"><META +NAME="KEYWORD" +CONTENT="function"></HEAD +><BODY +CLASS="CHAPTER" +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="sdlcdtrack.html" +ACCESSKEY="P" +>Prev</A +></TD +><TD +WIDTH="80%" +ALIGN="center" +VALIGN="bottom" +></TD +><TD +WIDTH="10%" +ALIGN="right" +VALIGN="bottom" +><A +HREF="sdlcreatethread.html" +ACCESSKEY="N" +>Next</A +></TD +></TR +></TABLE +><HR +ALIGN="LEFT" +WIDTH="100%"></DIV +><DIV +CLASS="CHAPTER" +><H1 +><A +NAME="THREAD" +></A +>Chapter 12. Multi-threaded Programming</H1 +><DIV +CLASS="TOC" +><DL +><DT +><B +>Table of Contents</B +></DT +><DT +><A +HREF="sdlcreatethread.html" +>SDL_CreateThread</A +> -- Creates a new thread of execution that shares its parent's properties.</DT +><DT +><A +HREF="sdlthreadid.html" +>SDL_ThreadID</A +> -- Get the 32-bit thread identifier for the current thread.</DT +><DT +><A +HREF="sdlgetthreadid.html" +>SDL_GetThreadID</A +> -- Get the SDL thread ID of a SDL_Thread</DT +><DT +><A +HREF="sdlwaitthread.html" +>SDL_WaitThread</A +> -- Wait for a thread to finish.</DT +><DT +><A +HREF="sdlkillthread.html" +>SDL_KillThread</A +> -- Gracelessly terminates the thread.</DT +><DT +><A +HREF="sdlcreatemutex.html" +>SDL_CreateMutex</A +> -- Create a mutex</DT +><DT +><A +HREF="sdldestroymutex.html" +>SDL_DestroyMutex</A +> -- Destroy a mutex</DT +><DT +><A +HREF="sdlmutexp.html" +>SDL_mutexP</A +> -- Lock a mutex</DT +><DT +><A +HREF="sdlmutexv.html" +>SDL_mutexV</A +> -- Unlock a mutex</DT +><DT +><A +HREF="sdlcreatesemaphore.html" +>SDL_CreateSemaphore</A +> -- Creates a new semaphore and assigns an initial value to it.</DT +><DT +><A +HREF="sdldestroysemaphore.html" +>SDL_DestroySemaphore</A +> -- Destroys a semaphore that was created by <A +HREF="sdlcreatesemaphore.html" +>SDL_CreateSemaphore</A +>.</DT +><DT +><A +HREF="sdlsemwait.html" +>SDL_SemWait</A +> -- Lock a semaphore and suspend the thread if the semaphore value is zero.</DT +><DT +><A +HREF="sdlsemtrywait.html" +>SDL_SemTryWait</A +> -- Attempt to lock a semaphore but don't suspend the thread.</DT +><DT +><A +HREF="sdlsemwaittimeout.html" +>SDL_SemWaitTimeout</A +> -- Lock a semaphore, but only wait up to a specified maximum time.</DT +><DT +><A +HREF="sdlsempost.html" +>SDL_SemPost</A +> -- Unlock a semaphore.</DT +><DT +><A +HREF="sdlsemvalue.html" +>SDL_SemValue</A +> -- Return the current value of a semaphore.</DT +><DT +><A +HREF="sdlcreatecond.html" +>SDL_CreateCond</A +> -- Create a condition variable</DT +><DT +><A +HREF="sdldestroycond.html" +>SDL_DestroyCond</A +> -- Destroy a condition variable</DT +><DT +><A +HREF="sdlcondsignal.html" +>SDL_CondSignal</A +> -- Restart a thread wait on a condition variable</DT +><DT +><A +HREF="sdlcondbroadcast.html" +>SDL_CondBroadcast</A +> -- Restart all threads waiting on a condition variable</DT +><DT +><A +HREF="sdlcondwait.html" +>SDL_CondWait</A +> -- Wait on a condition variable</DT +><DT +><A +HREF="sdlcondwaittimeout.html" +>SDL_CondWaitTimeout</A +> -- Wait on a condition variable, with timeout</DT +></DL +></DIV +><P +>SDL provides functions for creating threads, mutexes, semphores and condition variables.</P +><P +>In general, you must be very aware of concurrency and data integrity issues +when writing multi-threaded programs. Some good guidelines include: +<P +></P +><UL +><LI +><P +>Don't call SDL video/event functions from separate threads</P +></LI +><LI +><P +>Don't use any library functions in separate threads</P +></LI +><LI +><P +>Don't perform any memory management in separate threads</P +></LI +><LI +><P +>Lock global variables which may be accessed by multiple threads</P +></LI +><LI +><P +>Never terminate threads, always set a flag and wait for them to quit</P +></LI +><LI +><P +>Think very carefully about all possible ways your code may interact</P +></LI +></UL +></P +><DIV +CLASS="NOTE" +><BLOCKQUOTE +CLASS="NOTE" +><P +><B +>Note: </B +>SDL's threading is not implemented on MacOS, due to the lack of preemptive thread support on that OS (Mac OS X doesn't suffer from this problem)</P +></BLOCKQUOTE +></DIV +></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="sdlcdtrack.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="sdlcreatethread.html" +ACCESSKEY="N" +>Next</A +></TD +></TR +><TR +><TD +WIDTH="33%" +ALIGN="left" +VALIGN="top" +>SDL_CDtrack</TD +><TD +WIDTH="34%" +ALIGN="center" +VALIGN="top" +><A +HREF="reference.html" +ACCESSKEY="U" +>Up</A +></TD +><TD +WIDTH="33%" +ALIGN="right" +VALIGN="top" +>SDL_CreateThread</TD +></TR +></TABLE +></DIV +></BODY +></HTML +>
\ No newline at end of file |