unsigned int fairwindow;
unsigned int enabledcount;
unsigned int bound;
+
+ /** @brief Maximum number of future values that can be sent to the same
+ * read */
+ int maxfuturevalues;
+
+ /** @brief Only generate a new future value/expiration pair if the
+ * expiration time exceeds the existing one by more than the slop
+ * value */
+ unsigned int expireslop;
};
struct PendingFutureValue {
Thread * get_thread(ModelAction *act) const;
thread_id_t get_next_id();
- unsigned int get_num_threads();
+ unsigned int get_num_threads() const;
Thread * get_current_thread();
int switch_to_master(ModelAction *act);
bool isfeasible();
bool isfeasibleotherthanRMW();
bool isfinalfeasible();
+ void check_promises_thread_disabled();
void mo_check_promises(thread_id_t tid, const ModelAction *write);
void check_promises(thread_id_t tid, ClockVector *old_cv, ClockVector * merge_cv);
void get_release_seq_heads(ModelAction *act, rel_heads_list_t *release_heads);
*/
void set_current_action(ModelAction *act) { priv->current_action = act; }
Thread * check_current_action(ModelAction *curr);
- ModelAction * initialize_curr_action(ModelAction *curr);
+ bool initialize_curr_action(ModelAction **curr);
bool process_read(ModelAction *curr, bool second_part_of_rmw);
bool process_write(ModelAction *curr);
bool process_mutex(ModelAction *curr);