1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-18 14:21:41 +00:00
Files
godot/doc/classes/Semaphore.xml
Rémi Verschelde 32ddd4f4e0 Doctool: Remove version attribute from XML header
We don't use that info for anything, and it generates unnecessary diffs
every time we bump the minor version (and CI failures if we forget to
sync some files from opt-in modules (mono, text_server_fb).

(cherry picked from commit 81064cc239)
2024-09-11 12:41:48 +02:00

41 lines
1.9 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="Semaphore" inherits="Reference" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A synchronization semaphore.
</brief_description>
<description>
A synchronization semaphore which can be used to synchronize multiple [Thread]s. Initialized to zero on creation. Be careful to avoid deadlocks. For a binary version, see [Mutex].
[b]Warning:[/b]
To guarantee that the operating system is able to perform proper cleanup (no crashes, no deadlocks), these conditions must be met:
- By the time a [Semaphore]'s reference count reaches zero and therefore it is destroyed, no threads must be waiting on it.
- By the time a [Thread]'s reference count reaches zero and therefore it is destroyed, it must not be waiting on any semaphore.
</description>
<tutorials>
<link>$DOCS_URL/tutorials/performance/threads/using_multiple_threads.html</link>
</tutorials>
<methods>
<method name="post">
<return type="int" enum="Error" />
<description>
Lowers the [Semaphore], allowing one more thread in.
[b]Note:[/b] This method internals' can't possibly fail, but an error code is returned for backwards compatibility, which will always be [constant OK].
</description>
</method>
<method name="try_wait">
<return type="int" enum="Error" />
<description>
Like [method wait], but won't block, so if the value is zero, fails immediately and returns [constant ERR_BUSY]. If non-zero, it returns [constant OK] to report success.
</description>
</method>
<method name="wait">
<return type="int" enum="Error" />
<description>
Waits for the [Semaphore], if its value is zero, blocks until non-zero.
[b]Note:[/b] This method internals' can't possibly fail, but an error code is returned for backwards compatibility, which will always be [constant OK].
</description>
</method>
</methods>
<constants>
</constants>
</class>