From 1d1eb06e152e435833c34ba13f0d6ed443680d2e Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 20 Oct 2008 23:12:06 +0000 Subject: [PATCH] "lastTime" wasn't updated correctly when the thread was unscheduled. "scheduler" would therefore print incorrect latencies. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28254 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/scheduler/scheduler_tracing.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/scheduler/scheduler_tracing.cpp b/src/system/kernel/scheduler/scheduler_tracing.cpp index c7c9e801ff..858886fe8a 100644 --- a/src/system/kernel/scheduler/scheduler_tracing.cpp +++ b/src/system/kernel/scheduler/scheduler_tracing.cpp @@ -193,8 +193,6 @@ cmd_scheduler(int argc, char** argv) if (state == STILL_RUNNING) { // thread preempted - state = PREEMPTED; - runs++; preemptions++; totalRunTime += diffTime; @@ -202,6 +200,9 @@ cmd_scheduler(int argc, char** argv) minRunTime = diffTime; if (diffTime > maxRunTime) maxRunTime = diffTime; + + state = PREEMPTED; + lastTime = entry->Time(); } else if (state == RUNNING) { // thread starts waiting (it hadn't been added to the run // queue before being unscheduled) @@ -214,6 +215,7 @@ cmd_scheduler(int argc, char** argv) maxRunTime = diffTime; state = WAITING; + lastTime = entry->Time(); } } } else if (EnqueueThread* entry