From 1752fc1e8100694efa55492c0644e31d4670ebd1 Mon Sep 17 00:00:00 2001 From: longjin Date: Sun, 16 Oct 2022 20:41:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0kthread=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=EF=BC=8C=E5=87=8F=E5=B0=91=E6=AD=A7=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/process/kthread.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/process/kthread.c b/kernel/process/kthread.c index 092a48c2..92bdc42f 100644 --- a/kernel/process/kthread.c +++ b/kernel/process/kthread.c @@ -27,7 +27,7 @@ struct kthread_create_info_t void *data; int node; - // kthreadd守护进程传递给kthread_create的结果 + // kthreadd守护进程传递给kthread_create的结果, 成功则返回PCB,不成功则该值为负数错误码。若该值为NULL,意味着创建过程尚未完成 struct process_control_block *result; struct List list; @@ -170,6 +170,7 @@ static int kthread(void *_create) // 将当前pcb返回给创建者 create->result = current_pcb; + current_pcb->state &= ~PROC_RUNNING; // 设置当前进程不是RUNNING态 // 发起调度,使得当前内核线程休眠。直到创建者通过process_wakeup将当前内核线程唤醒 sched();