diff --git a/README.md b/README.md index 2d7c7dc7..84219844 100644 --- a/README.md +++ b/README.md @@ -90,6 +90,7 @@ ### 个人赞赏者列表 +- David Wen - 悟 - [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT) - slientbard diff --git a/README_EN.md b/README_EN.md index 660c510c..a7be9036 100644 --- a/README_EN.md +++ b/README_EN.md @@ -80,6 +80,7 @@ We hope that in the future, some enterprises can sponsor DragonOS and inject fin ### Individual Sponsor List +- David Wen - 悟 - [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT) - slientbard diff --git a/kernel/src/process/process.c b/kernel/src/process/process.c index 5b808bcd..2883a746 100644 --- a/kernel/src/process/process.c +++ b/kernel/src/process/process.c @@ -46,6 +46,9 @@ extern struct mm_struct initial_mm; extern struct signal_struct INITIAL_SIGNALS; extern struct sighand_struct INITIAL_SIGHAND; +extern void process_exit_sighand(struct process_control_block *pcb); +extern void process_exit_signal(struct process_control_block *pcb); + // 设置初始进程的PCB #define INITIAL_PROC(proc) \ { \ @@ -91,8 +94,6 @@ uint64_t process_exit_files(struct process_control_block *pcb); */ uint64_t process_exit_mm(struct process_control_block *pcb); - - /** * @brief 切换进程 * @@ -784,7 +785,6 @@ uint64_t process_exit_mm(struct process_control_block *pcb) return 0; } - /** * @brief todo: 回收线程结构体 * @@ -811,7 +811,8 @@ int process_release_pcb(struct process_control_block *pcb) // todo: 对相关的pcb加锁 pcb->prev_pcb->next_pcb = pcb->next_pcb; pcb->next_pcb->prev_pcb = pcb->prev_pcb; - + process_exit_sighand(pcb); + process_exit_signal(pcb); // 释放当前pcb kfree(pcb); return 0;