rename lock

main
Eggert Jung 6 months ago
parent 2421136335
commit a415260776

@ -70,16 +70,16 @@ enum PAGE_FAULT_ERROR {
} }
extern TextStream kout; extern TextStream kout;
extern Ticketlock ticketlock; extern Ticketlock koutlock;
void handle_keyboard() { void handle_keyboard() {
ticketlock.lock();
Key key = Key(); Key key = Key();
if (PS2Controller::fetch(key)) { if (PS2Controller::fetch(key)) {
kout << key.ascii() << endl << flush ; koutlock.lock();
kout << key.ascii() << flush ;
koutlock.unlock();
} }
ticketlock.unlock();
LAPIC::endOfInterrupt(); LAPIC::endOfInterrupt();
} }

@ -16,6 +16,7 @@
#include "sync/ticketlock.h" #include "sync/ticketlock.h"
TextStream kout = TextStream(0, 80, 0, 10, true); TextStream kout = TextStream(0, 80, 0, 10, true);
Ticketlock koutlock;
//TextStream dout[8] = { //TextStream dout[8] = {
// TextStream(0 ,20,12,25,false), // TextStream(0 ,20,12,25,false),
@ -50,8 +51,6 @@ CopyStream copystream[Core::MAX]{
{&dout[7], &sout}, {&dout[7], &sout},
}; };
Ticketlock ticketlock;
OutputStream* copyout[Core::MAX]{ OutputStream* copyout[Core::MAX]{
&dout[0], &dout[0],
&copystream[1], &copystream[1],

@ -20,13 +20,14 @@ Und wacht sie aus'm Koma auf, kriegt sie von mir 'n Sticker\n\
\n"; \n";
extern TextStream kout; extern TextStream kout;
extern Ticketlock ticketlock; extern Ticketlock koutlock;
void activeWaitDelay(uint64_t cycles) { void activeWaitDelay(uint64_t cycles) {
uint64_t counter = 0; // Use volatile to prevent optimization uint64_t counter = 0; // Use volatile to prevent optimization
for (uint64_t i = 0; i < cycles; ++i) { for (uint64_t i = 0; i < cycles; ++i) {
counter++; // Simple operation to consume cycles counter++; // Simple operation to consume cycles
//asm("nop"); asm("nop");
Core::pause(); //Core::pause();
} }
} }
@ -34,17 +35,17 @@ void Application::action() { // NOLINT
uint16_t cnt = 0; uint16_t cnt = 0;
while (1) { while (1) {
Core::Interrupt::disable(); Core::Interrupt::disable();
ticketlock.lock(); koutlock.lock();
while(text[cnt++] != '\n'){ while(text[cnt++] != '\n'){
kout << text[cnt-1]; kout << text[cnt-1];
} }
kout << endl << flush; kout << endl << flush;
koutlock.unlock();
activeWaitDelay(10000000); activeWaitDelay(1000000000);
if(cnt >= sizeof(text)-1) if(cnt >= sizeof(text)-1)
cnt=0; cnt=0;
ticketlock.unlock();
Core::Interrupt::enable(); Core::Interrupt::enable();
} }
} }

Loading…
Cancel
Save