aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianhao Wang <shrik3@mailbox.org>2024-06-11 15:08:16 +0200
committerTianhao Wang <shrik3@mailbox.org>2024-06-11 15:17:15 +0200
commit81eb41c1ed8f80cfefa359089c63f5ea8501ac1d (patch)
tree25524773986c9404ba6a54b97d310101e1b452f7
parentbed59f00a63e89abf1f82a6b10d5e8a493d54788 (diff)
chore: update dummy task exampleHEADmaster
Signed-off-by: Tianhao Wang <shrik3@mailbox.org>
-rw-r--r--src/proc/task.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/proc/task.rs b/src/proc/task.rs
index 2a6626d..720c93c 100644
--- a/src/proc/task.rs
+++ b/src/proc/task.rs
@@ -59,10 +59,13 @@ pub enum TaskState {
pub extern "C" fn _task_entry() -> ! {
let t = Task::current().unwrap();
println!("I'm Mr.Meeseeks {}, look at me~", t.pid);
- Scheduler::do_schedule();
- println!("I'm Mr.Meeseeks {}, look at me~", t.pid);
- Scheduler::do_schedule();
- unsafe { asm!("cli; hlt") };
+ loop {
+ KBCTL_GLOBAL.lock().fetch_key();
+ if let Some(k) = KBCTL_GLOBAL.lock().consume_key() {
+ println! {"thread {} got key: {}",t.pid ,k.asc}
+ }
+ Scheduler::do_schedule();
+ }
panic!("should not reach");
}