X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker.git;a=blobdiff_plain;f=libthreads.h;h=0c02971342d06ffa903feb01b2d4daadc08754d4;hp=1ea54ea758ea895eeac0230082645fc1da9d7ce9;hb=6c42e6f6e00d6283bce4e9086b111b4b78509ded;hpb=7fe82d0f56f7b2791a06a29986902da142207a90 diff --git a/libthreads.h b/libthreads.h index 1ea54ea..0c02971 100644 --- a/libthreads.h +++ b/libthreads.h @@ -1,31 +1,27 @@ +/** @file libthreads.h + * @brief Basic Thread Library Functionality. + */ + #ifndef __LIBTHREADS_H__ #define __LIBTHREADS_H__ -#include +#ifdef __cplusplus +extern "C" { +#endif -typedef enum thread_state { - THREAD_CREATED, - THREAD_RUNNING, - THREAD_READY, - THREAD_COMPLETED -} thread_state; + typedef void (*thrd_start_t)(void *); -typedef int thread_id_t; + typedef int thrd_t; -struct thread { - void (*start_routine)(); - void *arg; - ucontext_t context; - void *stack; - thread_id_t id; - thread_state state; -}; + 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); -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); + void user_main(void); -extern void user_main(void); +#ifdef __cplusplus +} +#endif #endif /* __LIBTHREADS_H__ */