Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 220 → Rev 221

/SPARTAN/trunk/include/arch.h
39,9 → 39,10
#include <proc/thread.h>
#include <proc/task.h>
 
#define CPU THE->cpu
#define THREAD THE->thread
#define TASK THE->task
#define CPU THE->cpu
#define THREAD THE->thread
#define TASK THE->task
#define PREEMPTION_DISABLED THE->preemption_disabled
 
#ifndef early_mapping
#define early_mapping(stack, size)
/SPARTAN/trunk/src/time/clock.c
84,18 → 84,20
*/
 
if (THREAD) {
__u64 ticks;
spinlock_lock(&CPU->lock);
CPU->needs_relink++;
spinlock_unlock(&CPU->lock);
spinlock_lock(&THREAD->lock);
if (!THREAD->ticks--) {
spinlock_unlock(&THREAD->lock);
if (ticks = THREAD->ticks)
THREAD->ticks--;
spinlock_unlock(&THREAD->lock);
if (!ticks && !PREEMPTION_DISABLED) {
scheduler();
}
else {
spinlock_unlock(&THREAD->lock);
}
}
 
}