diff options
| author | Zheng Da <zhengda1936@gmail.com> | 2009-11-17 10:29:23 +0100 |
|---|---|---|
| committer | Zheng Da <zhengda1936@gmail.com> | 2009-11-17 10:29:23 +0100 |
| commit | 9290f1fe99c91ba6c57dec956ff73d1741d81b45 (patch) | |
| tree | 5627d7980a4e0496ae1eaf77ee2f3634bb10b0cc /libddekit/include/ddekit/.svn/text-base/condvar.h.svn-base | |
| parent | a3eba19470c09f42272dac5ca1a34bd8a5cbe834 (diff) | |
Add DDEKit headers.
Diffstat (limited to 'libddekit/include/ddekit/.svn/text-base/condvar.h.svn-base')
| -rw-r--r-- | libddekit/include/ddekit/.svn/text-base/condvar.h.svn-base | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/libddekit/include/ddekit/.svn/text-base/condvar.h.svn-base b/libddekit/include/ddekit/.svn/text-base/condvar.h.svn-base new file mode 100644 index 00000000..b6dc4bd3 --- /dev/null +++ b/libddekit/include/ddekit/.svn/text-base/condvar.h.svn-base @@ -0,0 +1,54 @@ +#ifndef _ddekit_condvar_h +#define _ddekit_condvar_h + +/** \file ddekit/condvar.h */ + +#include <l4/dde/ddekit/lock.h> + +struct ddekit_condvar; +typedef struct ddekit_condvar ddekit_condvar_t; + +/** Initialize conditional variable. + * + * \ingroup DDEKit_synchronization + */ +ddekit_condvar_t * ddekit_condvar_init(void); + +/** Uninitialize conditional variable. + * + * \ingroup DDEKit_synchronization + */ +void ddekit_condvar_deinit(ddekit_condvar_t *cvp); + +/** Wait on a conditional variable. + * + * \ingroup DDEKit_synchronization + */ +void ddekit_condvar_wait(ddekit_condvar_t *cvp, ddekit_lock_t *mp); + +/** Wait on a conditional variable at most until a timeout expires. + * + * \ingroup DDEKit_synchronization + * + * \param cvp pointer to condvar + * \param mp lock + * \param timo timeout in ms + * + * \return 0 success + * \return !=0 timeout + */ +int ddekit_condvar_wait_timed(ddekit_condvar_t *cvp, ddekit_lock_t *mp, int timo); + +/** Send signal to the next one waiting for condvar. + * + * \ingroup DDEKit_synchronization + */ +void ddekit_condvar_signal(ddekit_condvar_t *cvp); + +/** Send signal to all threads waiting for condvar. + * + * \ingroup DDEKit_synchronization + */ +void ddekit_condvar_broadcast(ddekit_condvar_t *cvp); + +#endif |
