rename lock
This commit is contained in:
@@ -70,16 +70,16 @@ enum PAGE_FAULT_ERROR {
|
||||
}
|
||||
|
||||
extern TextStream kout;
|
||||
extern Ticketlock ticketlock;
|
||||
extern Ticketlock koutlock;
|
||||
void handle_keyboard() {
|
||||
ticketlock.lock();
|
||||
|
||||
Key key = Key();
|
||||
if (PS2Controller::fetch(key)) {
|
||||
kout << key.ascii() << endl << flush ;
|
||||
koutlock.lock();
|
||||
kout << key.ascii() << flush ;
|
||||
koutlock.unlock();
|
||||
}
|
||||
|
||||
ticketlock.unlock();
|
||||
LAPIC::endOfInterrupt();
|
||||
}
|
||||
|
||||
|
||||
3
main.cc
3
main.cc
@@ -16,6 +16,7 @@
|
||||
#include "sync/ticketlock.h"
|
||||
|
||||
TextStream kout = TextStream(0, 80, 0, 10, true);
|
||||
Ticketlock koutlock;
|
||||
|
||||
//TextStream dout[8] = {
|
||||
// TextStream(0 ,20,12,25,false),
|
||||
@@ -50,8 +51,6 @@ CopyStream copystream[Core::MAX]{
|
||||
{&dout[7], &sout},
|
||||
};
|
||||
|
||||
Ticketlock ticketlock;
|
||||
|
||||
OutputStream* copyout[Core::MAX]{
|
||||
&dout[0],
|
||||
©stream[1],
|
||||
|
||||
@@ -20,13 +20,14 @@ Und wacht sie aus'm Koma auf, kriegt sie von mir 'n Sticker\n\
|
||||
\n";
|
||||
|
||||
extern TextStream kout;
|
||||
extern Ticketlock ticketlock;
|
||||
extern Ticketlock koutlock;
|
||||
|
||||
void activeWaitDelay(uint64_t cycles) {
|
||||
uint64_t counter = 0; // Use volatile to prevent optimization
|
||||
for (uint64_t i = 0; i < cycles; ++i) {
|
||||
counter++; // Simple operation to consume cycles
|
||||
//asm("nop");
|
||||
Core::pause();
|
||||
asm("nop");
|
||||
//Core::pause();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,17 +35,17 @@ void Application::action() { // NOLINT
|
||||
uint16_t cnt = 0;
|
||||
while (1) {
|
||||
Core::Interrupt::disable();
|
||||
ticketlock.lock();
|
||||
koutlock.lock();
|
||||
while(text[cnt++] != '\n'){
|
||||
kout << text[cnt-1];
|
||||
}
|
||||
kout << endl << flush;
|
||||
koutlock.unlock();
|
||||
|
||||
activeWaitDelay(10000000);
|
||||
activeWaitDelay(1000000000);
|
||||
if(cnt >= sizeof(text)-1)
|
||||
cnt=0;
|
||||
|
||||
ticketlock.unlock();
|
||||
Core::Interrupt::enable();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user