61,6 → 61,7 |
#include <cpu.h> |
#include <print.h> |
#include <debug.h> |
#include <proc/tasklet.h> |
|
static void before_task_runs(void); |
static void before_thread_runs(void); |
226,7 → 227,11 |
* Take the first thread from the queue. |
*/ |
t = list_get_instance(r->rq_head.next, thread_t, rq_link); |
if (verbose) |
printf("cpu%d removing, rq_head %x, t: %x, next: %x, link: %x \n",CPU->id, r->rq_head, t, r->rq_head.next, t->rq_link); |
list_remove(&t->rq_link); |
if (verbose) |
printf("cpu%d removed, rq_head %x, t: %x, next: %x, link: %x \n",CPU->id, r->rq_head, t, r->rq_head.next, t->rq_link); |
|
spinlock_unlock(&r->lock); |
|
438,7 → 443,8 |
THREAD->call_me = NULL; |
THREAD->call_me_with = NULL; |
} |
|
if (verbose) |
printf("cpu%d, Sleeping unlocking \n", CPU->id); |
spinlock_unlock(&THREAD->lock); |
|
break; |
454,12 → 460,17 |
|
THREAD = NULL; |
} |
|
if (verbose) |
printf("cpu%d looking for next thread\n", CPU->id); |
THREAD = find_best_thread(); |
|
if (verbose) |
printf("cpu%d t locking THREAD:%x \n", CPU->id, THREAD); |
spinlock_lock(&THREAD->lock); |
priority = THREAD->priority; |
spinlock_unlock(&THREAD->lock); |
if (verbose) |
printf("cpu%d t unlocked after priority THREAD:%x \n", CPU->id, THREAD); |
|
relink_rq(priority); |
|