Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Semaphore

Inherits: RefCounted < Object

A synchronization mechanism used to control access to a shared resource by Threads.

Description

A synchronization semaphore that can be used to synchronize multiple Threads. Initialized to zero on creation. For a binary version, see Mutex.

Warning: Semaphores must be used carefully to avoid deadlocks.

Warning: To guarantee that the operating system is able to perform proper cleanup (no crashes, no deadlocks), these conditions must be met:

  • When a Semaphore's reference count reaches zero and it is therefore destroyed, no threads must be waiting on it.

  • When a Thread's reference count reaches zero and it is therefore destroyed, it must not be waiting on any semaphore.

Tutorials