Handout
This commit is contained in:
20
kernel/interrupt/epilogues.cc
Normal file
20
kernel/interrupt/epilogues.cc
Normal file
@@ -0,0 +1,20 @@
|
||||
#include "epilogues.h"
|
||||
|
||||
#include "../thread/thread.h"
|
||||
#include "guard.h"
|
||||
|
||||
Key Epilogues::key;
|
||||
|
||||
void Epilogues::keyboard(Vault& v) {
|
||||
if (v.keys.produce(key)) {
|
||||
v.keys_sem.v(v);
|
||||
}
|
||||
key.invalidate();
|
||||
}
|
||||
|
||||
void Epilogues::timer(Vault& v) {
|
||||
// Let Bellringer check for waiting threads
|
||||
v.bellringer.check(v);
|
||||
// Reschedule on each tick
|
||||
v.scheduler.resume();
|
||||
}
|
||||
Reference in New Issue
Block a user