fixed all bugs

This commit is contained in:
Simon
2025-06-02 16:13:39 +02:00
parent 893fc4bad9
commit c46cc8d1a2
5 changed files with 10 additions and 9 deletions

View File

@@ -4,12 +4,10 @@
#include "guard.h"
extern Key kout_key;
extern TextStream kout;
namespace Epilogues {
void keyboard(Vault& g) {
(void)g;
g.kout << kout_key.ascii() << endl << flush ;
}

View File

@@ -32,7 +32,7 @@ Guarded Guard::enter() {
void Guard::leave() {
bool istate = Core::Interrupt::disable();
Epilogue next;
while(epilogue_queue FOR_CURRENT_CORE.consume(next)){
Core::Interrupt::enable();
@@ -53,15 +53,19 @@ void Guard::relay(Epilogue handler) {
// handler(global_vault);
// leave();
//}
Core::Interrupt::enable(); // goto level 0.5
if(epi_flag FOR_CURRENT_CORE){
epilogue_queue->produce(handler);
}
else{
epi_flag FOR_CURRENT_CORE = true;
global_lock.lock();
handler(global_vault);
leave(); // maybe not needed since destructor also calls leave
global_lock.unlock();
}
epilogue_queue->consume(handler);
}
const Vault &Guard::unsafeConstAccess() { return global_vault; }

View File

@@ -73,7 +73,6 @@ enum PAGE_FAULT_ERROR {
kernelpanic("Page fault!");
}
extern TextStream kout;
extern Ticketlock koutlock;
extern Vault keyboard_vault;