From fb586a0c8293b0acfa681820e9c3ded9462b689d Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Tue, 11 Sep 2012 19:45:57 -0700 Subject: [PATCH] model: add ModelChecker::get_thread(ModelAction *act) Many times, I need to convert ModelAction to a Thread. Overload get_thread() to make it easier to use. --- model.cc | 8 ++++---- model.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/model.cc b/model.cc index 3e54a00..cb7e43f 100644 --- a/model.cc +++ b/model.cc @@ -216,7 +216,7 @@ void ModelChecker::set_backtracking(ModelAction *act) { ModelAction *prev; Node *node; - Thread *t = get_thread(act->get_tid()); + Thread *t = get_thread(act); prev = get_last_conflict(act); if (prev == NULL) @@ -361,14 +361,14 @@ Thread * ModelChecker::check_current_action(ModelAction *curr) } case THREAD_JOIN: { Thread *wait, *join; - wait = get_thread(curr->get_tid()); + wait = get_thread(curr); join = (Thread *)curr->get_location(); if (!join->is_complete()) scheduler->wait(wait, join); break; } case THREAD_FINISH: { - Thread *th = get_thread(curr->get_tid()); + Thread *th = get_thread(curr); while (!th->wait_list_empty()) { Thread *wake = th->pop_wait_list(); scheduler->wake(wake); @@ -384,7 +384,7 @@ Thread * ModelChecker::check_current_action(ModelAction *curr) break; } - Thread *th = get_thread(curr->get_tid()); + Thread *th = get_thread(curr); bool updated = false; if (curr->is_read()) { diff --git a/model.h b/model.h index c3e5830..19143d3 100644 --- a/model.h +++ b/model.h @@ -60,6 +60,7 @@ public: void add_thread(Thread *t); void remove_thread(Thread *t); Thread * get_thread(thread_id_t tid) { return thread_map->get(id_to_int(tid)); } + Thread * get_thread(ModelAction *act) { return get_thread(act->get_tid()); } thread_id_t get_next_id(); int get_num_threads(); -- 2.34.1