X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=schedule.cc;h=9063fdb4680243c6d3a78e686ef29f217ecbf0cd;hb=3e6579acd2456b1a7e0fc0aaa7e2e9b5bdb78a27;hp=be4a92f739a1129bb2aa4bee50bb23ba0a3f8556;hpb=ae25995a404cb06c3e89dd878c7abd763449cdb3;p=model-checker.git diff --git a/schedule.cc b/schedule.cc index be4a92f..9063fdb 100644 --- a/schedule.cc +++ b/schedule.cc @@ -45,6 +45,17 @@ void Scheduler::wait(Thread *wait, Thread *join) wait->set_state(THREAD_BLOCKED); } +/** + * Prevent a Thread from being scheduled. The sleeping Thread should be + * re-awoken via Scheduler::wake. + * @param thread The Thread that should sleep + */ +void Scheduler::sleep(Thread *t) +{ + remove_thread(t); + t->set_state(THREAD_BLOCKED); +} + /** * Wake a Thread up that was previously waiting (see Scheduler::wait) * @param t The Thread to wake up