blob: aad1bb226fff957c97a852c91905237cc92186c5 [file] [log] [blame]
program AlarmClockProgram {
monitor AlarmClock {
var now : integer := 0;
var wakeup : condition;
procedure wakeme(in n : integer) {
var alarmSetting : integer;
alarmSetting := now + n;
while now < alarmSetting do {
wakeup.wait(alarmSetting);
}
wakeup.signal();
-- In case the next process is due to wake up at the same time
}
procedure tick() {
now := now + 1;
wakeup.signal();
}
}
}