PtCondTimedWait()

Block a thread on a conditional variable, with a time limit

Synopsis:

int PtCondTimedWait(
       pthread_cond_t *cond,
       const struct timespec *abstime );

Arguments:

cond
The condition variable to wait on.
abstime
A pointer to a timespec structure that specifies the absolute time by which the thread must unblock.

Library:

ph

Description:

PtCondTimedWait() is an equivalent of pthread_cond_timedwait() that uses the Photon library lock instead of a mutex, which has the effect of an implicit PtLeave() when you block, and PtEnter() when you unblock.

The calling thread is blocked until:

In all cases, the thread reacquires the Photon library lock before being unblocked.

Returns:

EOK
Success, or the call was interrupted by a signal.
EAGAIN
Insufficient system resources are available to wait on the condition.
EFAULT
A fault occurred trying to access the buffers provided.
EINVAL
One or more of cond or abstime was invalid.
ETIMEDOUT
The time specified by abstime has passed.

Classification:

Photon

Safety:
Interrupt handler No
Signal handler No
Thread Yes

See also:

PtCondWait(), PtEnter(), PtLeave()

pthread_cond_timedwait() in the QNX Neutrino Library Reference

Threads in the Parallel Operations chapter of the Photon Programmer's Guide