diff options
author | Ian Moffett <ian@osmora.org> | 2025-05-17 18:37:19 -0400 |
---|---|---|
committer | Ian Moffett <ian@osmora.org> | 2025-05-17 18:37:19 -0400 |
commit | 9ce60df67bb75468368e049c5f2c3195e3d669c0 (patch) | |
tree | 2067f7cd9beb3b8c21738bced00de94c0252b223 /sys | |
parent | c239e13767fdf4a7eb299dd5b8cc2ccb33ec054c (diff) |
kernel: sched: Add sched_detach()
Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'sys')
-rw-r--r-- | sys/include/sys/sched.h | 2 | ||||
-rw-r--r-- | sys/kern/kern_sched.c | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/sys/include/sys/sched.h b/sys/include/sys/sched.h index 7f5e65f..80f4d1c 100644 --- a/sys/include/sys/sched.h +++ b/sys/include/sys/sched.h @@ -37,6 +37,8 @@ void sched_init(void); void sched_yield(void); +void sched_detach(struct proc *td); + __dead void sched_enter(void); void sched_enqueue_td(struct proc *td); diff --git a/sys/kern/kern_sched.c b/sys/kern/kern_sched.c index 01c3b8d..8e5c0e9 100644 --- a/sys/kern/kern_sched.c +++ b/sys/kern/kern_sched.c @@ -262,6 +262,18 @@ sched_yield(void) } void +sched_detach(struct proc *td) +{ + struct sched_queue *queue; + + spinlock_acquire(&tdq_lock); + queue = &qlist[td->priority]; + + TAILQ_REMOVE(&queue->q, td, link); + spinlock_release(&tdq_lock); +} + +void sched_init(void) { /* Setup the queues */ |