X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=threads.h;h=a379494d43bd93ee78dea0f3f0bb98dcd0af60a4;hb=2c830a91c32a55de67c21e03f36529f994d9139d;hp=87a21ef2633f46f14de70240f052bc50af2adcce;hpb=2cd14a2ba5f68a5bd35c1094c9d5a83891b483f8;p=c11tester.git diff --git a/threads.h b/threads.h index 87a21ef2..a379494d 100644 --- a/threads.h +++ b/threads.h @@ -11,10 +11,7 @@ #include "mymemory.h" #include "libthreads.h" - -typedef int thread_id_t; - -#define THREAD_ID_T_NONE -1 +#include "modeltypes.h" /** @brief Represents the state of a user Thread */ typedef enum thread_state { @@ -84,6 +81,16 @@ public: */ void push_wait_list(ModelAction *act) { wait_list.push_back(act); } + unsigned int num_wait_list() { + return wait_list.size(); + } + + ModelAction * get_waiter(unsigned int i) { + return wait_list[i]; + } + + ModelAction * get_pending() { return pending; } + void set_pending(ModelAction *act) { pending = act; } /** * Remove one ModelAction from the waiting list * @return The ModelAction that was removed from the waiting list @@ -102,6 +109,7 @@ private: Thread *parent; ModelAction *creation; + ModelAction *pending; void (*start_routine)(void *); void *arg; ucontext_t context;