From: Brian Norris Date: Wed, 20 Feb 2013 02:03:56 +0000 (-0800) Subject: model: add 'const' X-Git-Tag: oopsla2013~239 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8311cfbfaef6d71448cb04de647ef89cba3d3b98;p=model-checker.git model: add 'const' --- diff --git a/model.cc b/model.cc index 0bccd83..7c9b4c0 100644 --- a/model.cc +++ b/model.cc @@ -545,7 +545,7 @@ bool ModelChecker::next_execution() return true; } -ModelAction * ModelChecker::get_last_conflict(ModelAction *act) +ModelAction * ModelChecker::get_last_conflict(ModelAction *act) const { switch (act->get_type()) { case ATOMIC_FENCE: diff --git a/model.h b/model.h index 8ef825f..56d86ac 100644 --- a/model.h +++ b/model.h @@ -139,7 +139,7 @@ public: MEMALLOC private: /** The scheduler to use: tracks the running/ready Threads */ - Scheduler *scheduler; + Scheduler * const scheduler; bool sleep_can_read_from(ModelAction *curr, const ModelAction *write); bool thin_air_constraint_may_allow(const ModelAction *writer, const ModelAction *reader); @@ -167,7 +167,7 @@ private: Thread * take_step(ModelAction *curr); void check_recency(ModelAction *curr, const ModelAction *rf); - ModelAction * get_last_conflict(ModelAction *act); + ModelAction * get_last_conflict(ModelAction *act) const; void set_backtracking(ModelAction *act); Thread * get_next_thread(ModelAction *curr); bool set_latest_backtrack(ModelAction *act); @@ -202,24 +202,24 @@ private: ModelAction *earliest_diverge; ucontext_t system_context; - action_list_t *action_trace; - HashTable *thread_map; + action_list_t * const action_trace; + HashTable * const 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 *obj_map; + HashTable * const obj_map; /** Per-object list of actions. Maps an object (i.e., memory location) * to a trace of all actions performed on the object. */ - HashTable *lock_waiters_map; + HashTable * const lock_waiters_map; /** Per-object list of actions. Maps an object (i.e., memory location) * to a trace of all actions performed on the object. */ - HashTable *condvar_waiters_map; + HashTable * const condvar_waiters_map; - HashTable *, uintptr_t, 4 > *obj_thrd_map; - std::vector< Promise *, SnapshotAlloc > *promises; - std::vector< struct PendingFutureValue, SnapshotAlloc > *futurevalues; + HashTable *, uintptr_t, 4 > * const obj_thrd_map; + std::vector< Promise *, SnapshotAlloc > * const promises; + std::vector< struct PendingFutureValue, SnapshotAlloc > * const futurevalues; /** * List of pending release sequences. Release sequences might be @@ -227,15 +227,15 @@ private: * are established. Each entry in the list may only be partially * filled, depending on its pending status. */ - std::vector< struct release_seq *, SnapshotAlloc > *pending_rel_seqs; + std::vector< struct release_seq *, SnapshotAlloc > * const pending_rel_seqs; - std::vector< ModelAction *, SnapshotAlloc > *thrd_last_action; - std::vector< ModelAction *, SnapshotAlloc > *thrd_last_fence_release; - NodeStack *node_stack; + std::vector< ModelAction *, SnapshotAlloc > * const thrd_last_action; + std::vector< ModelAction *, SnapshotAlloc > * const thrd_last_fence_release; + NodeStack * const node_stack; /** Private data members that should be snapshotted. They are grouped * together for efficiency and maintainability. */ - struct model_snapshot_members *priv; + struct model_snapshot_members * const priv; /** A special model-checker Thread; used for associating with * model-checker-related ModelAcitons */ @@ -255,7 +255,7 @@ private: * such that a --> b means a was ordered before * b. */ - CycleGraph *mo_graph; + CycleGraph * const mo_graph; /** @brief The cumulative execution stats */ struct execution_stats stats;