- int selectWrite(ModelAction *read, SnapVector<ModelAction *>* rf_set);
- Thread * selectThread(Node *n, int * threadlist, int numthreads);
+ virtual int selectWrite(ModelAction *read, SnapVector<ModelAction *>* rf_set);
+ virtual Predicate * get_selected_child_branch(thread_id_t tid) = 0;
+ virtual bool has_paused_threads() { return false; }
+ virtual Thread * selectThread(int * threadlist, int numthreads);