X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=libthreads.h;h=f6de95bb9fa4f3614f07658b2abe05f8217ec6fa;hb=8bfe0555350d48f40f95e48f873c990a6fd4152f;hp=0201ea616eb8842f4f3e86a2d7001421a3cb8252;hpb=60e0a49ba320b32b9cc0d2f8d73c8d95c92fc0ba;p=model-checker.git diff --git a/libthreads.h b/libthreads.h index 0201ea6..f6de95b 100644 --- a/libthreads.h +++ b/libthreads.h @@ -1,19 +1,23 @@ #ifndef __LIBTHREADS_H__ #define __LIBTHREADS_H__ -#include +#ifdef __cplusplus +extern "C" { +#endif -struct thread { - void (*start_routine); - void *arg; - ucontext_t context; - void *stack; - int index; - int completed; -}; + typedef void (*thrd_start_t)(void *); -int thread_create(struct thread *t, void (*start_routine), void *arg); -void thread_join(struct thread *t); -struct thread *thread_current(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__ */