aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/main/kmain.c6
-rw-r--r--kernel/proc/sched.c8
2 files changed, 12 insertions, 2 deletions
diff --git a/kernel/main/kmain.c b/kernel/main/kmain.c
index 1d61270..e45299a 100644
--- a/kernel/main/kmain.c
+++ b/kernel/main/kmain.c
@@ -168,7 +168,7 @@ static void *initproc_run(long arg1, void *arg2)
proctest_main(0, NULL);
- dbg(DBG_PROC, "%s", "In main thread!");
+ dbg(DBG_PROC, "%s", "In main thread!\n");
// see if there are any children to wait for
while (do_waitpid(-1, 0, 0) != -ECHILD)
@@ -205,7 +205,11 @@ void initproc_start()
sched_make_runnable(init_thread);
+ // update current thread to main thread
+ curthr = init_thread;
+
context_make_active(&curcore.kc_ctx); // start the scheduler
+ // context_make_active(&init_thread->kt_ctx);
// TODO: ask about how the core is linked to scheduler
}
diff --git a/kernel/proc/sched.c b/kernel/proc/sched.c
index c4f1d5a..d0e634f 100644
--- a/kernel/proc/sched.c
+++ b/kernel/proc/sched.c
@@ -270,7 +270,13 @@ void sched_make_runnable(kthread_t *thr)
{
// NOT_YET_IMPLEMENTED("PROCS: sched_make_runnable");
- dbg(DBG_SCHED, "Making thread with proc pid %d runnable\n", thr->kt_proc->p_pid);
+ dbg(DBG_SCHED, "Making thread with proc pid %d runnable\n in thread\n", thr->kt_proc->p_pid);
+ if (curthr == NULL)
+ {
+ dbg(DBG_SCHED, "I did this ^^ with a null thread!\n");
+ } else {
+ dbg(DBG_SCHED, "I did this ^^ with thread %d\n", curthr->kt_proc->p_pid);
+ }
KASSERT(thr != curthr);
KASSERT(thr->kt_state != KT_RUNNABLE);