From: Brian Norris Date: Fri, 10 Aug 2012 21:29:06 +0000 (-0700) Subject: model: make scheduler private X-Git-Tag: pldi2013~271^2~8 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=0cb167b8fb332e4d9726badd0aa58e943bb4b459;p=model-checker.git model: make scheduler private To accomplish this, I needed to add one accessor method for 'get_current_thread()'. --- diff --git a/model.h b/model.h index 2b878b3..86e0b1e 100644 --- a/model.h +++ b/model.h @@ -36,9 +36,6 @@ public: ModelChecker(struct model_params params); ~ModelChecker(); - /** The scheduler to use: tracks the running/ready Threads */ - Scheduler *scheduler; - /** Stores the context for the main model-checking system thread (call * once) * @param ctxt The system context structure @@ -63,6 +60,9 @@ public: int get_num_threads(); modelclock_t get_next_seq_num(); + /** @return The currently executing Thread. */ + Thread * get_current_thread() { return scheduler->get_current_thread(); } + int switch_to_master(ModelAction *act); ClockVector * get_cv(thread_id_t tid); bool next_execution(); @@ -74,6 +74,9 @@ public: MEMALLOC private: + /** The scheduler to use: tracks the running/ready Threads */ + Scheduler *scheduler; + int next_thread_id; modelclock_t used_sequence_numbers; int num_executions; diff --git a/threads.cc b/threads.cc index 2697579..ad88ad3 100644 --- a/threads.cc +++ b/threads.cc @@ -26,7 +26,7 @@ static void stack_free(void *stack) Thread * thread_current(void) { ASSERT(model); - return model->scheduler->get_current_thread(); + return model->get_current_thread(); } /**