Threading Support Functions

Procedures for working with multithreaded applications.

Description
	These procedures allow for multithreaded programming. Threads and 
	conditional variables can be created and destroyed, and so-called 
	mutexes can be obtained to protect thread-sensitive data.

#THREADSThreads
	Procedures that start and wait for threaded procedures.
#MUTEXESMutexes
	Procedures that deal with mutexes.
#CONDVARSConditional Varables
	Procedures that create and signal conditional variables.

THREADSThreads
	KeyPgThreadCallThreadCall
		Starts a procedure with parameters in a separate thread of execution.
	KeyPgThreadCreateThreadCreate
		Starts a procedure in a separate thread of execution.
	KeyPgThreadWaitThreadWait
		Waits for a thread to finish and releases the thread handle.
	KeyPgThreadDetachThreadDetach
		Releases a thread handle without waiting for the thread to finish.
	KeyPgThreadSelfThreadSelf
		Returns the thread handle of the current thread.

MUTEXESMutexes
	KeyPgMutexCreateMutexCreate
		Creates a mutex.
	KeyPgMutexLockMutexLock
		Acquires a lock on a mutex.
	KeyPgMutexUnlockMutexUnlock
		Releases a lock on a mutex.
	KeyPgMutexDestroyMutexDestroy
		Destroys a mutex that is no longer needed.
CONDVARSConditional Variables
	KeyPgCondCreateCondCreate
		Creates a conditional variable.
	KeyPgCondWaitCondWait
		Pauses execution of a threaded procedure.
	KeyPgCondSignalCondSignal
		Resumes execution of a threaded procedure waiting for a conditional.
	KeyPgCondBroadcastCondBroadcast
		Resumes all threaded procedures waiting for a conditional.
	KeyPgCondDestroyCondDestroy
		Destroys a conditional variable that is no longer needed.

Platform Differences
	* These procedures are not supported in DOS.

