X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=threads.h;h=9fecdfd3c7466398c85ec3dfafebb314d5887bfa;hb=b59d5f84ac4800cc144fc7c8837d96181423d9ae;hp=a379494d43bd93ee78dea0f3f0bb98dcd0af60a4;hpb=c832cb55af09e735821ae3463bc37c29d3fa27c8;p=model-checker.git diff --git a/threads.h b/threads.h index a379494..9fecdfd 100644 --- a/threads.h +++ b/threads.h @@ -35,6 +35,7 @@ class ModelAction; /** @brief A Thread is created for each user-space thread */ class Thread { public: + Thread(thread_id_t tid); Thread(thrd_t *t, void (*func)(void *), void *a); ~Thread(); void complete(); @@ -101,6 +102,8 @@ public: return ret; } + bool is_model_thread() { return model_thread; } + friend void thread_startup(); SNAPSHOTALLOC @@ -123,7 +126,7 @@ private: * list is used for thread joins, where another Thread waits for this * Thread to complete */ - std::vector wait_list; + std::vector< ModelAction *, SnapshotAlloc > wait_list; /** * The value returned by the last action in this thread @@ -131,6 +134,9 @@ private: * @see Thread::get_return_value() */ uint64_t last_action_val; + + /** @brief Is this Thread a special model-checker thread? */ + const bool model_thread; }; Thread * thread_current();