1.4.4.3 OSAL_SEM_Pend Function

C

OSAL_RESULT OSAL_SEM_Pend(OSAL_SEM_HANDLE_TYPE* semID, uint16_t waitMS)

Summary

Waits on a semaphore. Returns true if the semaphore was obtained within the time limit.

Description

This function is a blocking function call that waits (i.e., pends) on a semaphore. The function will return true if the semaphore has been obtained, or false if it was not available or the time limit was exceeded.

Precondition

Semaphore must have been created.

Parameters

ParamDescription
semIDPointer to the Semaphore ID
waitMSTime limit to wait in milliseconds: 0 - do not wait, OSAL_WAIT_FOREVER - return only when semaphore is obtained, Other values - time-out delay

Returns

OSAL_RESULT_TRUE - Semaphore obtained

OSAL_RESULT_FALSE - Semaphore not obtained or time-out occurred

Example

if (OSAL_SEM_Pend(&semUARTRX, 50) == OSAL_RESULT_TRUE)
{
    // character available
    c = DRV_USART_ReadByte(drvID);
    ...
}
else
{
    // character not available, resend prompt
    ...
}

Remarks

None.