Store the set of predicate leaves in FuncNode
[c11tester.git] / fuzzer.h
index 348225c8f60184d90701b63df36767761bf0129e..d31c22673a4aab928a614075490e79b1362dd9cf 100644 (file)
--- a/fuzzer.h
+++ b/fuzzer.h
@@ -9,12 +9,16 @@ class Fuzzer {
 public:
        Fuzzer() {}
        virtual int selectWrite(ModelAction *read, SnapVector<ModelAction *>* rf_set);
-       virtual Predicate * get_selected_child_branch(thread_id_t tid) = 0;
-       Thread * selectThread(int * threadlist, int numthreads);
+       virtual bool has_paused_threads() { return false; }
+       virtual void notify_paused_thread(Thread * thread) = 0;
+       virtual Thread * selectThread(int * threadlist, int numthreads);
+
        Thread * selectNotify(action_list_t * waiters);
        bool shouldSleep(const ModelAction *sleep);
        bool shouldWake(const ModelAction *sleep);
+       virtual bool shouldWait(const ModelAction *wait) = 0;
        virtual void register_engine(ModelHistory * history, ModelExecution * execution) = 0;
+       virtual Predicate * get_selected_child_branch(thread_id_t tid) = 0;
        SNAPSHOTALLOC
 private:
 };