X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=libthreads.h;h=b16c96be83dc4aab21b77f46b3579574a861c137;hb=df437a93a0599b75a4df8967d2943a01ca931a9a;hp=1ea54ea758ea895eeac0230082645fc1da9d7ce9;hpb=eb5d233dfb48cf8628a8c8669666f7c1ae86d8f3;p=model-checker.git diff --git a/libthreads.h b/libthreads.h index 1ea54ea..b16c96b 100644 --- a/libthreads.h +++ b/libthreads.h @@ -1,30 +1,15 @@ #ifndef __LIBTHREADS_H__ #define __LIBTHREADS_H__ -#include - -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);