major rewrite - 'struct thread' replaced with internal 'class Thread'
[model-checker.git] / libthreads.h
index 1ea54ea758ea895eeac0230082645fc1da9d7ce9..b16c96be83dc4aab21b77f46b3579574a861c137 100644 (file)
@@ -1,30 +1,15 @@
 #ifndef __LIBTHREADS_H__
 #define __LIBTHREADS_H__
 
-#include <ucontext.h>
-
-typedef enum thread_state {
-       THREAD_CREATED,
-       THREAD_RUNNING,
-       THREAD_READY,
-       THREAD_COMPLETED
-} thread_state;
-
 typedef int thread_id_t;
+typedef void (*thrd_start_t)();
 
-struct thread {
-       void (*start_routine)();
-       void *arg;
-       ucontext_t context;
-       void *stack;
-       thread_id_t id;
-       thread_state state;
-};
+typedef thread_id_t thrd_t;
 
-int thread_create(struct thread *t, void (*start_routine)(), void *arg);
-int thread_join(struct thread *t);
-int thread_yield(void);
-struct thread *thread_current(void);
+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);
 
 extern void user_main(void);