X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=fuzzer.h;h=b0f533d2d622d70e6feb6091feed5c4be1b50f69;hb=1b2222d691a55eb20b39d3804c71aca19f5577bf;hp=e794d225b70c15d5e8954ab9fed034e37f168d96;hpb=39e9009d50498d0dd1bccc1a54e378f7aef5a28a;p=c11tester.git diff --git a/fuzzer.h b/fuzzer.h index e794d225..b0f533d2 100644 --- a/fuzzer.h +++ b/fuzzer.h @@ -3,16 +3,21 @@ #include "classlist.h" #include "mymemory.h" #include "stl-model.h" +#include "threads-model.h" class Fuzzer { public: Fuzzer() {} - int selectWrite(ModelAction *read, SnapVector* rf_set); - Thread * selectThread(int * threadlist, int numthreads); + virtual int selectWrite(ModelAction *read, SnapVector* rf_set); + virtual bool has_paused_threads() { return false; } + virtual Thread * selectThread(int * threadlist, int numthreads); + Thread * selectNotify(action_list_t * waiters); bool shouldSleep(const ModelAction *sleep); bool shouldWake(const ModelAction *sleep); - MEMALLOC + virtual bool shouldWait(const ModelAction *wait); + virtual void register_engine(ModelExecution * execution) {} + SNAPSHOTALLOC private: }; #endif