- /**
- * Stores the ModelAction for the current thread action. Call this
- * immediately before switching from user- to system-context to pass
- * data between them.
- * @param act The ModelAction created by the user-thread action
- */
- void set_current_action(ModelAction *act) { priv->current_action = act; }
- Thread * check_current_action(ModelAction *curr);
- bool process_read(ModelAction *curr, Thread * th, bool second_part_of_rmw);
+ bool sleep_can_read_from(ModelAction *curr, const ModelAction *write);
+ bool thin_air_constraint_may_allow(const ModelAction *writer, const ModelAction *reader);
+ bool mo_may_allow(const ModelAction *writer, const ModelAction *reader);
+ bool has_asserted() const;
+ void set_assert();
+ void set_bad_synchronization();
+ bool promises_expired() const;
+ void execute_sleep_set();
+ void wake_up_sleeping_actions(ModelAction *curr);
+ modelclock_t get_next_seq_num();
+
+ bool next_execution();
+ void set_current_action(ModelAction *act);
+ ModelAction * check_current_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_fence(ModelAction *curr);
+ bool process_mutex(ModelAction *curr);
+ bool process_thread_action(ModelAction *curr);
+ void process_relseq_fixup(ModelAction *curr, work_queue_t *work_queue);
+ bool read_from(ModelAction *act, const ModelAction *rf);
+ bool check_action_enabled(ModelAction *curr);