aboutsummaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 33ad241..4c8c1ca 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -234,11 +234,13 @@ void
update(uint32_t release, uint32_t deadline)
{
struct task *t;
+ uint32_t now;
cli();
+ now = NOW(kernel.cycles, TCNT1);
t = kernel.running;
#if SLACK
- t->slack = NOW(kernel.cycles, TCNT1) - t->deadline;
+ t->slack = DISTANCE(now, t->deadline);
#endif
t->state = TIMEQ;
t->release += release;