// Name  : Christopher A. Egert
// Course: Operating Systems CS421
// Date  : July 15, 2000
// Class : Alarm

// CAE - THREADS - BEGIN ALARM CLASS HEADER

class Alarm {
   public:
      Alarm();		// Construct an Alarm (should be done in system,
			// it will most likely be easiest to treat an 
			// alarm as a single instance resource provided 
			// by Nachos)
      ~Alarm();		// Deconstruct (call at shutdown)

      void GoToSleepFor(int ticks);  	// Sleep for a specified number of 
					// Clock cycles
      void Tick();			// Method should check to see
					// who needs to wake up
					// (HINT : LIST is your friend, and
					// CAN be modified)
   private:

      List *queue;			// Place to hold the blocked sleepers
} ;

// CAE - THREADS - END ALARM CLASS HEADER
