datarace: bugfix - use proper multiple-inclusion guard
[model-checker.git] / execution.h
index 6e4fd2ab900988df3d40e1b06be6c8f38d8df3f7..1ba030b6d93a2d61fc97009dcf869db4c634e6ce 100644 (file)
@@ -61,11 +61,13 @@ struct release_seq {
 class ModelExecution {
 public:
        ModelExecution(ModelChecker *m,
-                       struct model_params *params,
+                       const struct model_params *params,
                        Scheduler *scheduler,
                        NodeStack *node_stack);
        ~ModelExecution();
 
+       const struct model_params * get_params() const { return params; }
+
        Thread * take_step(ModelAction *curr);
        void fixup_release_sequences();
 
@@ -186,11 +188,11 @@ private:
        ModelAction * get_uninitialized_action(const ModelAction *curr) const;
 
        action_list_t action_trace;
-       HashTable<int, Thread *, int> thread_map;
+       SnapVector<Thread *> thread_map;
 
        /** Per-object list of actions. Maps an object (i.e., memory location)
         * to a trace of all actions performed on the object. */
-       HashTable<const void *, action_list_t *, uintptr_t, 4> * const obj_map;
+       HashTable<const void *, action_list_t *, uintptr_t, 4> obj_map;
 
        /** Per-object list of actions. Maps an object (i.e., memory location)
         * to a trace of all actions performed on the object. */