init: init nachos hw01, should pass jenkins os_group_20_hw job but fail on os_group_20_ta job
This commit is contained in:
42
code/threads/alarm.h
Normal file
42
code/threads/alarm.h
Normal file
@@ -0,0 +1,42 @@
|
||||
// alarm.h
|
||||
// Data structures for a software alarm clock.
|
||||
//
|
||||
// We make use of a hardware timer device, that generates
|
||||
// an interrupt every X time ticks (on real systems, X is
|
||||
// usually between 0.25 - 10 milliseconds).
|
||||
//
|
||||
// From this, we provide the ability for a thread to be
|
||||
// woken up after a delay; we also provide time-slicing.
|
||||
//
|
||||
// NOTE: this abstraction is not completely implemented.
|
||||
//
|
||||
// Copyright (c) 1992-1996 The Regents of the University of California.
|
||||
// All rights reserved. See copyright.h for copyright notice and limitation
|
||||
// of liability and disclaimer of warranty provisions.
|
||||
|
||||
#ifndef ALARM_H
|
||||
#define ALARM_H
|
||||
|
||||
#include "copyright.h"
|
||||
#include "utility.h"
|
||||
#include "callback.h"
|
||||
#include "timer.h"
|
||||
|
||||
// The following class defines a software alarm clock.
|
||||
class Alarm : public CallBackObj {
|
||||
public:
|
||||
Alarm(bool doRandomYield); // Initialize the timer, and callback
|
||||
// to "toCall" every time slice.
|
||||
~Alarm() { delete timer; }
|
||||
|
||||
void WaitUntil(int x); // suspend execution until time > now + x
|
||||
// this method is not yet implemented
|
||||
|
||||
private:
|
||||
Timer *timer; // the hardware timer device
|
||||
|
||||
void CallBack(); // called when the hardware
|
||||
// timer generates an interrupt
|
||||
};
|
||||
|
||||
#endif // ALARM_H
|
||||
Reference in New Issue
Block a user