#include "mutex.h"
#include "tqueue.h"
#include "thread.h"
Go to the source code of this file.
Data Structures | |
| struct | cond |
Typedefs | |
| typedef cond | cond_t |
Functions | |
| void | cond_init (cond_t *cvar) |
| Initialize condition variable. | |
| void | cond_destroy (cond_t *cvar) |
| Destroys conditional variable. | |
| void | cond_signal (cond_t *cvar) |
| Unlock one of threads waiting on the condition variable. | |
| void | cond_broadcast (cond_t *cvar) |
| Unlock all of threads waiting on the condition variable. | |
| void | cond_wait (cond_t *cvar, struct mutex *mtx) |
| Suspend calling thread on a condition variable waiting for condition Atomically unlocks mutex and suspends calling thread on conditional variable after waking up locks mutex. | |
| int | cond_wait_timeout (cond_t *cvar, mutex_t *mtx, const unsigned int usec) |
| Atomically unlocks mutex and suspends calling thread at most on \ usec microseconds. | |
Conditional variables are implemented as a queue of threads vaiting for the condition, that allows to wakeup them on cond_wait and cond signal calls.
This file is based on Kalisto, Development Kernel copyrighted (c) to Distributed Systems Research Group MFF UK, Czech republic.
| void cond_broadcast | ( | cond_t * | cvar | ) |
Unlock all of threads waiting on the condition variable.
| cvar | condition variable struct pointer |
| void cond_destroy | ( | cond_t * | cvar | ) |
Destroys conditional variable.
| cvar | condition variable struct pointer |
| void cond_init | ( | cond_t * | cvar | ) |
Initialize condition variable.
| cvar | condition variable struct pointer |
| void cond_signal | ( | cond_t * | cvar | ) |
Unlock one of threads waiting on the condition variable.
| cvar | condition variable struct pointer |
Suspend calling thread on a condition variable waiting for condition Atomically unlocks mutex and suspends calling thread on conditional variable after waking up locks mutex.
| cvar | condition variable pointer | |
| mtx | mutex pointer |
Atomically unlocks mutex and suspends calling thread at most on \ usec microseconds.
If 0 msec is wanted thread suspend is ommitted, but the thread yield one times before next mutex lock
| cvar | condition variable struct pointer | |
| mtx | mutex pointer | |
| usec | time limit to wait |
1.4.7