{{fbdoc item="title" value="MUTEXUNLOCK"}}----
Releases a mutex lock

{{fbdoc item="syntax"}}##
	[[KeyPgDeclare declare]] [[KeyPgSub sub]] **Mutexunlock** ( [[KeyPgByval byval]] //id// [[KeyPgAs as]] [[KeyPgAny any]] [[KeyPgPtr ptr]] )
##
{{fbdoc item="usage"}}##
	**Mutexunlock**( //id// )
##
{{fbdoc item="param"}}
	##//id//##
		The ##[[KeyPgAny any]] [[KeyPgPtr ptr]]## handle of the mutex to be unlocked.

{{fbdoc item="desc"}}
	##Mutexunlock## releases a mutex "handle" created by ##[[KeyPgMutexCreate Mutexcreate]]##, and locked with ##[[KeyPgMutexLock Mutexlock]]##.  This allows other threads sharing the mutex to continue execution.

	See ##[[KeyPgMutexCreate Mutexcreate]]## for more general information on mutexes.

{{fbdoc item="ex"}}
	See the examples in ##[[KeyPgMutexCreate Mutexcreate]]## and also ##[[KeyPgThreadCreate Threadcreate]]##.

{{fbdoc item="lang"}}
	- Threading is not allowed in the //[[CompilerOptlang -lang qb]]// dialect.

{{fbdoc item="target"}}
	- The DOS version of ""FreeBASIC"" does not allow for threads, as the OS does not support them.
	- In Linux the threads are always started in the order they are created, this can't be assumed in ""Win32"". It's an OS, not a ""FreeBASIC"" issue. 

{{fbdoc item="diff"}}
	- New to ""FreeBASIC""

{{fbdoc item="see"}}
	- ##[[KeyPgMutexCreate Mutexcreate]]##
	- ##[[KeyPgMutexDestroy Mutexdestroy]]##
	- ##[[KeyPgMutexLock Mutexlock]]##
	- ##[[KeyPgThreadCreate Threadcreate]]##
	- ##[[KeyPgThreadWait Threadwait]]##

{{fbdoc item="back" value="CatPgThreading|Threading Support Functions"}}