ClassesClasses | | Operators

wait_conditionT_wait_conditionWaitConditionWaitCondition (Operator)

Name

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

Signature

wait_condition( : : ConditionHandle, MutexHandle : )

Herror T_wait_condition(const Htuple ConditionHandle, const Htuple MutexHandle)

void WaitCondition(const HTuple& ConditionHandle, const HTuple& MutexHandle)

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

static void HOperatorSet.WaitCondition(HTuple conditionHandle, HTuple mutexHandle)

void HCondition.WaitCondition(HMutex mutexHandle)

Description

wait_conditionwait_conditionWaitConditionWaitConditionWaitCondition atomically unlocks the MutexHandleMutexHandleMutexHandleMutexHandlemutexHandle (as per unlock_mutexunlock_mutexUnlockMutexUnlockMutexUnlockMutex) and waits for the condition variable ConditionHandleConditionHandleConditionHandleConditionHandleconditionHandle 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_conditionwait_conditionWaitConditionWaitConditionWaitCondition. Before returning to the calling thread, wait_conditionwait_conditionWaitConditionWaitConditionWaitCondition re-acquires MutexHandleMutexHandleMutexHandleMutexHandlemutexHandle (as per lock_mutexlock_mutexLockMutexLockMutexLockMutex).

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

Parameters

ConditionHandleConditionHandleConditionHandleConditionHandleconditionHandle (input_control)  condition HCondition, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Condition synchronization object.

MutexHandleMutexHandleMutexHandleMutexHandlemutexHandle (input_control)  mutex HMutex, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Mutex synchronization object.

Result

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

Possible Successors

signal_conditionsignal_conditionSignalConditionSignalConditionSignalCondition, clear_conditionclear_conditionClearConditionClearConditionClearCondition

Module

Foundation


ClassesClasses | | Operators