X-Git-Url: http://plrg.eecs.uci.edu/git/?p=model-checker.git;a=blobdiff_plain;f=schedule.cc;h=8f7f1a98d8cc2833c812243cecaa284d375286ad;hp=328bda6990c3e55a61574261f893fa77a9031eaa;hb=16c741a1826b66ff5bb1f2b29311aa95cad08089;hpb=9ab763adc965ca76a8d65b9898d20c60cdb44445 diff --git a/schedule.cc b/schedule.cc index 328bda6..8f7f1a9 100644 --- a/schedule.cc +++ b/schedule.cc @@ -1,21 +1,28 @@ -/* -*- Mode: C; indent-tabs-mode: t -*- */ - #include "threads.h" #include "schedule.h" #include "common.h" #include "model.h" -Scheduler::Scheduler(): -current(NULL) +/** Constructor */ +Scheduler::Scheduler() : + current(NULL) { } +/** + * Add a Thread to the scheduler's ready list. + * @param t The Thread to add + */ void Scheduler::add_thread(Thread *t) { DEBUG("thread %d\n", t->get_id()); readyList.push_back(t); } +/** + * Remove a given Thread from the scheduler. + * @param t The Thread to remove + */ void Scheduler::remove_thread(Thread *t) { if (current == t) @@ -24,7 +31,11 @@ void Scheduler::remove_thread(Thread *t) readyList.remove(t); } -Thread * Scheduler::next_thread(void) +/** + * Remove one Thread from the scheduler. This implementation performs FIFO. + * @return The next Thread to run + */ +Thread * Scheduler::next_thread() { Thread *t = model->schedule_next_thread(); @@ -44,11 +55,18 @@ Thread * Scheduler::next_thread(void) return t; } -Thread * Scheduler::get_current_thread(void) +/** + * @return The currently-running Thread + */ +Thread * Scheduler::get_current_thread() const { return current; } +/** + * Print debugging information about the current state of the scheduler. Only + * prints something if debugging is enabled. + */ void Scheduler::print() { if (current)