add ctrl-c response in fs/stdio.rs::read. But the default sig action for SIGINT is still wrong

ch7
Yu Chen 3 years ago
parent 32098d61d3
commit 2ba356050d

@ -1,7 +1,7 @@
use super::File;
use crate::mm::UserBuffer;
use crate::sbi::console_getchar;
use crate::task::suspend_current_and_run_next;
use crate::task::{suspend_current_and_run_next,current_task,SignalFlags,};
pub struct Stdin;
@ -23,6 +23,12 @@ impl File for Stdin {
if c == 0 {
suspend_current_and_run_next();
continue;
} else if c == 3 {
// 3 is ctrl_c
let task = current_task().unwrap();
let mut inner = task.inner_exclusive_access();
inner.signals.insert(SignalFlags::SIGINT);
break;
} else {
break;
}

Loading…
Cancel
Save