#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;
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();