From d01fa1ffe3ba17bf507570cb6c380c16542ea481 Mon Sep 17 00:00:00 2001 From: Pawel Dziepak Date: Tue, 21 Jan 2014 03:49:11 +0100 Subject: [PATCH] scheduler: Always update core load at thread reenqueue --- src/system/kernel/scheduler/scheduler_thread.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/system/kernel/scheduler/scheduler_thread.h b/src/system/kernel/scheduler/scheduler_thread.h index 200266c8b8..026d5237b7 100644 --- a/src/system/kernel/scheduler/scheduler_thread.h +++ b/src/system/kernel/scheduler/scheduler_thread.h @@ -394,12 +394,15 @@ ThreadData::Enqueue() SCHEDULER_ENTER_FUNCTION(); if (!fReady) { - if (gTrackCoreLoad && system_time() - fWentSleep > 0) { - fMeasureAvailableTime += system_time() - fWentSleep; - + if (gTrackCoreLoad) { + bigtime_t timeSlept = system_time() - fWentSleep; fCore->UpdateLoad(fNeededLoad); - _ComputeNeededLoad(); + if (timeSlept > 0) { + fMeasureAvailableTime += timeSlept; + _ComputeNeededLoad(); + } } + fReady = true; }