From 8a122ff2e84e0908df91e94f56b123a563592e64 Mon Sep 17 00:00:00 2001 From: Brian Norris Date: Fri, 5 Oct 2012 18:29:45 -0700 Subject: [PATCH 1/1] schedule: do not allow model-checker thread to enter scheduler --- schedule.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/schedule.cc b/schedule.cc index cca60ebf..dd35237b 100644 --- a/schedule.cc +++ b/schedule.cc @@ -48,6 +48,7 @@ bool Scheduler::is_enabled(Thread *t) const void Scheduler::add_thread(Thread *t) { DEBUG("thread %d\n", id_to_int(t->get_id())); + ASSERT(!t->is_model_thread()); set_enabled(t, THREAD_ENABLED); } @@ -79,6 +80,7 @@ void Scheduler::sleep(Thread *t) */ void Scheduler::wake(Thread *t) { + ASSERT(!t->is_model_thread()); set_enabled(t, THREAD_DISABLED); t->set_state(THREAD_READY); } @@ -106,6 +108,9 @@ Thread * Scheduler::next_thread(Thread *t) return NULL; } } + } else if (t->is_model_thread()) { + /* model-checker threads never run */ + t = NULL; } else { curr_thread_index = id_to_int(t->get_id()); } @@ -120,6 +125,7 @@ Thread * Scheduler::next_thread(Thread *t) */ Thread * Scheduler::get_current_thread() const { + ASSERT(!current || !current->is_model_thread()); return current; } -- 2.34.1