model: do not assume THREAD_FINISH is always the last action
[model-checker.git] / model.h
diff --git a/model.h b/model.h
index 3802b9e2945e7dc8b30169f2bb23cb4edac083f7..3dbd562755e41ece4f9836b9e6fa53a9c52c313f 100644 (file)
--- a/model.h
+++ b/model.h
 #include <cstddef>
 #include <ucontext.h>
 
-#include "schedule.h"
 #include "mymemory.h"
-#include "libthreads.h"
-#include "threads.h"
 #include "action.h"
-#include "clockvector.h"
 #include "hashtable.h"
 #include "workqueue.h"
 #include "config.h"
+#include "modeltypes.h"
 
 /* Forward declaration */
 class NodeStack;
 class CycleGraph;
 class Promise;
+class Scheduler;
+class Thread;
 
 /** @brief Shorthand for a list of release sequence heads */
 typedef std::vector< const ModelAction *, ModelAlloc<const ModelAction *> > rel_heads_list_t;
@@ -73,8 +72,8 @@ public:
 
        void add_thread(Thread *t);
        void remove_thread(Thread *t);
-       Thread * get_thread(thread_id_t tid);
-       Thread * get_thread(ModelAction *act);
+       Thread * get_thread(thread_id_t tid) const;
+       Thread * get_thread(ModelAction *act) const;
 
        thread_id_t get_next_id();
        int get_num_threads();