aboutsummaryrefslogtreecommitdiff
path: root/nptl/threads.h
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/threads.h')
-rw-r--r--nptl/threads.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/nptl/threads.h b/nptl/threads.h
index 32f7cf8..e46b1b7 100644
--- a/nptl/threads.h
+++ b/nptl/threads.h
@@ -60,6 +60,12 @@ typedef union
long int __align __LOCK_ALIGNMENT;
} mtx_t;
+typedef union
+{
+ char __size[__SIZEOF_PTHREAD_COND_T];
+ __extension__ long long int __align __LOCK_ALIGNMENT;
+} cnd_t;
+
/* Threads functions. */
/* Create a new thread executing the function __FUNC. Arguments for __FUNC
@@ -140,6 +146,34 @@ extern void mtx_destroy (mtx_t *__mutex);
All calls must be made with the same __FLAGS object. */
extern void call_once (once_flag *__flag, void (*__func)(void));
+
+/* Condition variable functions. */
+
+/* Initialize new condition variable pointed by __COND. */
+extern int cnd_init (cnd_t *__cond);
+
+/* Unblock one thread that currently waits on condition variable pointed
+ by __COND. */
+extern int cnd_signal (cnd_t *__cond);
+
+/* Unblock all threads currently waiting on condition variable pointed by
+ __COND. */
+extern int cnd_broadcast (cnd_t *__cond);
+
+/* Block current thread on the condition variable pointed by __COND. */
+extern int cnd_wait (cnd_t *__cond, mtx_t *__mutex);
+
+/* Block current thread on the condition variable until condition variable
+ pointed by __COND is signaled or time pointed by __TIME_POINT is
+ reached. */
+extern int cnd_timedwait (cnd_t *__restrict __cond,
+ mtx_t *__restrict __mutex,
+ const struct timespec *__restrict __time_point);
+
+/* Destroy condition variable pointed by __cond and free all of its
+ resources. */
+extern void cnd_destroy (cnd_t *__COND);
+
__END_DECLS
#endif /* _THREADS_H */