Attention: Here be dragons
This is the
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
A synchronization mechanism used to control access to a shared resource by Threads.
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.
post ( )
try_wait ( )
wait ( )
void post ( )
Lowers the Semaphore, allowing one more thread in.
bool try_wait ( )
Like wait, but won't block, so if the value is zero, fails immediately and returns
false. If non-zero, it returns
true to report success.
void wait ( )
Waits for the Semaphore, if its value is zero, blocks until non-zero.