model: schedule appropriate fence backtracking points
[c11tester.git] / schedule.h
index da91fddf976c8dd880a57b98476b9e3af76cdffd..121da08db05a3d0d735c4ca34926006b364c85cb 100644 (file)
@@ -5,8 +5,8 @@
 #ifndef __SCHEDULE_H__
 #define __SCHEDULE_H__
 
-#include <list>
 #include "mymemory.h"
+#include "modeltypes.h"
 
 /* Forward declaration */
 class Thread;
@@ -27,16 +27,18 @@ public:
        void remove_thread(Thread *t);
        void sleep(Thread *t);
        void wake(Thread *t);
-       Thread * next_thread(Thread *t);
+       Thread * select_next_thread();
+       void set_current_thread(Thread *t);
        Thread * get_current_thread() const;
        void print() const;
-       enabled_type_t * get_enabled() { return enabled; };
+       enabled_type_t * get_enabled_array() const { return enabled; };
        void remove_sleep(Thread *t);
        void add_sleep(Thread *t);
-       enabled_type_t get_enabled(Thread *t);
+       enabled_type_t get_enabled(const Thread *t) const;
        void update_sleep_set(Node *n);
-       bool is_enabled(Thread *t) const;
+       bool is_enabled(const Thread *t) const;
        bool is_enabled(thread_id_t tid) const;
+       bool is_sleep_set(const Thread *t) const;
 
        SNAPSHOTALLOC
 private: