- bug fix
This commit is contained in:
parent
cdc6707852
commit
8591645bb3
2 changed files with 7 additions and 6 deletions
|
@ -33,7 +33,7 @@ void kb_flush() {
|
|||
kb_buffer.buffer = NULL;
|
||||
kb_buffer.size = 0;
|
||||
kb_buffer.maxsize = 0;
|
||||
kb_buffer.tid = 0;
|
||||
//kb_buffer.tid = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -121,7 +121,7 @@ static void keyboard_handler(struct state *r)
|
|||
kb_buffer.size++;
|
||||
}
|
||||
if (scancode == 28 || scancode == 15 || kb_buffer.size >= kb_buffer.maxsize) {
|
||||
wakeup_task(kb_buffer.tid);
|
||||
//wakeup_task(kb_buffer.tid);
|
||||
reschedule();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,11 +34,12 @@ static ssize_t stdin_read(fildes_t* file, uint8_t* buffer, size_t size)
|
|||
kb_buffer.buffer = kmalloc(size * sizeof(char));
|
||||
kb_buffer.maxsize = size;
|
||||
kb_buffer.size = 0;
|
||||
kb_buffer.tid = per_core(current_task)->id;
|
||||
block_task(per_core(current_task)->id);
|
||||
reschedule();
|
||||
//kb_buffer.tid = per_core(current_task)->id;
|
||||
while(!kb_buffer.size) {
|
||||
reschedule();
|
||||
size = kb_buffer.size;
|
||||
}
|
||||
size = kb_buffer.size;
|
||||
|
||||
memcpy(buffer, kb_buffer.buffer, size);
|
||||
|
||||
/*cleaning up */
|
||||
|
|
Loading…
Add table
Reference in a new issue