You are reading the latest (unstable) version of this documentation, which may document features not available or compatible with Godot 3.x.

Work in progress

Godot documentation is being updated to reflect the latest changes in version 4.0. Some documentation pages may still state outdated information. This banner will tell you if you're reading one of such pages.

The contents of this page are up to date. If you can still find outdated information, please open an issue.


Inherits: RefCounted < Object

A synchronization mutex (mutual exclusion).


A synchronization mutex (mutual exclusion). This is used to synchronize multiple Threads, and is equivalent to a binary Semaphore. It guarantees that only one thread can ever acquire the lock at a time. A mutex can be used to protect a critical section; however, be careful to avoid deadlocks.




lock ( )


try_lock ( )


unlock ( )

Method Descriptions

void lock ( )

Locks this Mutex, blocks until it is unlocked by the current owner.

Note: This function returns without blocking if the thread already has ownership of the mutex.

bool try_lock ( )

Tries locking this Mutex, but does not block. Returns true on success, false otherwise.

Note: This function returns @GlobalScope.OK if the thread already has ownership of the mutex.

void unlock ( )

Unlocks this Mutex, leaving it to other threads.

Note: If a thread called lock or try_lock multiple times while already having ownership of the mutex, it must also call unlock the same number of times in order to unlock it correctly.