Skip to content

wait_conditionWaitConditionWaitConditionwait_conditionT_wait_condition🔗

Short description🔗

wait_conditionWaitConditionWaitConditionwait_conditionT_wait_condition — wait on the signal of a condition synchronization object.

Signature🔗

wait_condition( condition ConditionHandle, mutex MutexHandle )void WaitCondition( const HTuple& ConditionHandle, const HTuple& MutexHandle )static void HOperatorSet.WaitCondition( HTuple conditionHandle, HTuple mutexHandle )def wait_condition( condition_handle: HHandle, mutex_handle: HHandle ) -> None

Herror T_wait_condition( const Htuple ConditionHandle, const Htuple MutexHandle )

void HCondition::WaitCondition( const HMutex& MutexHandle ) const

void HCondition.WaitCondition( HMutex mutexHandle )

Description🔗

wait_conditionWaitCondition atomically unlocks the MutexHandlemutexHandlemutex_handle (as per unlock_mutexUnlockMutex) and waits for the condition variable ConditionHandleconditionHandlecondition_handle to be signaled. The thread execution is suspended and does not consume any CPU time until the condition variable is signaled. The mutex must be locked by the calling thread on entrance to wait_conditionWaitCondition. Before returning to the calling thread, wait_conditionWaitCondition re-acquires MutexHandlemutexHandlemutex_handle (as per lock_mutexLockMutex).

Unlocking the mutex and suspending on the condition variable is done atomically. Thus, if all threads always acquire the mutex before signaling the condition, this guarantees that the condition cannot be signaled (and thus ignored) between the time a thread locks the mutex and the time it waits on the condition variable.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

Parameters🔗

ConditionHandleconditionHandlecondition_handle (input_control) condition → (handle)HTuple (HHandle)HCondition, HTuple (IntPtr)HHandleHtuple (handle)

Condition synchronization object.

MutexHandlemutexHandlemutex_handle (input_control) mutex → (handle)HTuple (HHandle)HMutex, HTuple (IntPtr)HHandleHtuple (handle)

Mutex synchronization object.

Result🔗

wait_conditionWaitCondition returns 2 (H_MSG_TRUE) if all parameters are correct. If necessary, an exception is raised.

Combinations with other operators🔗

Combinations

Possible successors

signal_conditionSignalCondition, clear_conditionClearCondition

Module🔗

Foundation