cyclegraph: improve comments, use initializer list
[model-checker.git] / libthreads.h
index aa7faf44d255452c172e2db2cf40919e4453b555..0c02971342d06ffa903feb01b2d4daadc08754d4 100644 (file)
@@ -1,29 +1,27 @@
+/** @file libthreads.h
+ *  @brief Basic Thread Library Functionality.
+ */
+
 #ifndef __LIBTHREADS_H__
 #define __LIBTHREADS_H__
 
-#include <ucontext.h>
-
-typedef enum thread_state {
-       THREAD_CREATED,
-       THREAD_RUNNING,
-       THREAD_READY,
-       THREAD_COMPLETED
-} thread_state;
-
-struct thread {
-       void (*start_routine)();
-       void *arg;
-       ucontext_t context;
-       void *stack;
-       int id;
-       thread_state state;
-};
-
-int thread_create(struct thread *t, void (*start_routine)(), void *arg);
-void thread_join(struct thread *t);
-int thread_yield(void);
-struct thread *thread_current(void);
-
-extern void user_main(void);
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+       typedef void (*thrd_start_t)(void *);
+
+       typedef int thrd_t;
+
+       int thrd_create(thrd_t *t, thrd_start_t start_routine, void *arg);
+       int thrd_join(thrd_t);
+       int thrd_yield(void);
+       thrd_t thrd_current(void);
+
+       void user_main(void);
+
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* __LIBTHREADS_H__ */