From ac1f5fae3b969805384eb655d230dc4501d9aa01 Mon Sep 17 00:00:00 2001 From: yufeng <321353225@qq.com> Date: Sun, 14 Aug 2022 14:12:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=20syscall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/src/sys_call/mod.rs | 2 ++ kernel/src/sys_call/task.rs | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/src/sys_call/mod.rs b/kernel/src/sys_call/mod.rs index 2e84d98..6463737 100644 --- a/kernel/src/sys_call/mod.rs +++ b/kernel/src/sys_call/mod.rs @@ -337,6 +337,8 @@ impl Task { pub fn signal(&self, signal: usize) -> Result<(), RuntimeError> { let mut inner = self.inner.borrow_mut(); let mut process = inner.process.borrow_mut(); + + process.pmm.change_satp(); let sig_action = process.sig_actions[signal]; diff --git a/kernel/src/sys_call/task.rs b/kernel/src/sys_call/task.rs index 7426fff..683ae51 100644 --- a/kernel/src/sys_call/task.rs +++ b/kernel/src/sys_call/task.rs @@ -5,6 +5,7 @@ use hashbrown::HashMap; use crate::get_free_page_num; use crate::interrupt::timer::TimeSpec; +use crate::task::signal::Signal; use crate::task::task_scheduler::{add_task_to_scheduler, get_task, get_task_num}; use crate::task::task_scheduler::switch_next; use crate::task::task_scheduler::get_current_task; @@ -59,10 +60,10 @@ impl Task { Some(parent) => { let parent = parent.upgrade().unwrap(); let parent = parent.borrow(); - // let task = parent.tasks[0].clone().upgrade().unwrap(); + let task = parent.tasks[0].clone().upgrade().unwrap(); drop(parent); // 处ç†signal 17 SIGCHLD - // task.signal(17); + task.signal(17); } None => {} } -- GitLab