struct model_params {
int maxreads;
int maxfuturedelay;
+ unsigned int fairwindow;
+ unsigned int enabledcount;
};
struct PendingFutureValue {
void finish_execution();
bool isfeasibleprefix();
void set_assert() {asserted=true;}
+ const model_params params;
MEMALLOC
private:
int num_executions;
int num_feasible_executions;
bool promises_expired();
- const model_params params;
/**
* Stores the ModelAction for the current thread action. Call this
ModelAction * initialize_curr_action(ModelAction *curr);
bool process_read(ModelAction *curr, bool second_part_of_rmw);
bool process_write(ModelAction *curr);
- void process_mutex(ModelAction *curr);
+ bool process_mutex(ModelAction *curr);
+ bool process_thread_action(ModelAction *curr);
bool check_action_enabled(ModelAction *curr);
bool take_step();