Skip to content

Latest commit

 

History

History
61 lines (37 loc) · 2.11 KB

class_semaphore.rst

File metadata and controls

61 lines (37 loc) · 2.11 KB
github_url:hide

Semaphore

Inherits: :ref:`Reference<class_Reference>` < :ref:`Object<class_Object>`

A synchronization semaphore.

Description

A synchronization semaphore which can be used to synchronize multiple :ref:`Thread<class_Thread>`s. Initialized to zero on creation. Be careful to avoid deadlocks. For a binary version, see :ref:`Mutex<class_Mutex>`.

Tutorials

Methods

void :ref:`post<class_Semaphore_method_post>` ( )
:ref:`Error<enum_@GlobalScope_Error>` :ref:`try_wait<class_Semaphore_method_try_wait>` ( )
void :ref:`wait<class_Semaphore_method_wait>` ( )

Method Descriptions

  • void post ( )

Lowers the Semaphore, allowing one more thread in.


Like :ref:`wait<class_Semaphore_method_wait>`, but won't block, so if the value is zero, fails immediately and returns :ref:`@GlobalScope.ERR_BUSY<class_@GlobalScope_constant_ERR_BUSY>`. If non-zero, it returns :ref:`@GlobalScope.OK<class_@GlobalScope_constant_OK>` to report success.


  • void wait ( )

Waits for the Semaphore, if its value is zero, blocks until non-zero.