X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker.git;a=blobdiff_plain;f=threads.h;h=0e0293ad817332e867db1e7b92c490da3c3f9b19;hp=57319067b4adb74255435cb721d723650900153c;hb=40212bad619f289d5c5ae944da42c80af249763d;hpb=10de861d3a9908e75b6f94283cc67b3f1b4d93ab diff --git a/threads.h b/threads.h index 5731906..0e0293a 100644 --- a/threads.h +++ b/threads.h @@ -1,3 +1,7 @@ +/** @file threads.h + * @brief Model Checker Thread class. + */ + #ifndef __THREADS_H__ #define __THREADS_H__ @@ -16,6 +20,8 @@ typedef enum thread_state { THREAD_COMPLETED } thread_state; +class ModelAction; + class Thread { public: Thread(thrd_t *t, void (*func)(void *), void *a); @@ -30,11 +36,17 @@ public: thread_id_t get_id(); thrd_t get_thrd_t() { return *user_thread; } Thread * get_parent() { return parent; } - friend void thread_startup(); - MEMALLOC + + void set_creation(ModelAction *act) { creation = act; } + ModelAction * get_creation() { return creation; } + + friend void thread_startup(); + + SNAPSHOTALLOC private: int create_context(); Thread *parent; + ModelAction *creation; void (*start_routine)(void *); void *arg;