From 1256960e781bfc6187cf3e5b02d7a7e8e849a054 Mon Sep 17 00:00:00 2001 From: Matheus Date: Mon, 12 Jun 2023 21:13:33 -0300 Subject: [PATCH] scheduler: fix newproc() unitialized variable --- kernel-src/include/kernel/scheduler.h | 3 ++- kernel-src/sys/scheduler.c | 8 +++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/kernel-src/include/kernel/scheduler.h b/kernel-src/include/kernel/scheduler.h index 81274101..4afb7304 100644 --- a/kernel-src/include/kernel/scheduler.h +++ b/kernel-src/include/kernel/scheduler.h @@ -82,6 +82,7 @@ proc_t *sched_newproc(); vnode_t *sched_getcwd(); vnode_t *sched_getroot(); thread_t *sched_newthread(void *ip, size_t kstacksize, int priority, proc_t *proc, void *ustack); - +void sched_destroyproc(proc_t *); +void sched_destroythread(thread_t *); #endif diff --git a/kernel-src/sys/scheduler.c b/kernel-src/sys/scheduler.c index 330620c5..698bb50b 100644 --- a/kernel-src/sys/scheduler.c +++ b/kernel-src/sys/scheduler.c @@ -40,7 +40,9 @@ proc_t *sched_newproc() { slab_free(processcache, proc); return NULL; } + // TODO move this to slab + proc->state = SCHED_PROC_STATE_NORMAL; proc->threadtablesize = 1; proc->runningthreadcount = 1; SPINLOCK_INIT(proc->lock); @@ -97,9 +99,9 @@ void sched_destroythread(thread_t *thread) { } void sched_destroyproc(proc_t *proc) { - //free(proc->threads); - //free(proc->fd); - //slab_free(processcache, proc); + free(proc->threads); + free(proc->fd); + slab_free(processcache, proc); } static thread_t *runqueuenext(int minprio) {