From b83ce85d89c6d368ffb8146043b878a441226ada Mon Sep 17 00:00:00 2001 From: Benny Baumann Date: Sun, 3 Apr 2022 12:57:23 +0200 Subject: Force elapsed time display to zero if process seems started in the future --- Process.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Process.c b/Process.c index 59006fa7..c8c2aa91 100644 --- a/Process.c +++ b/Process.c @@ -871,7 +871,15 @@ void Process_writeField(const Process* this, RichString* str, ProcessField field Process_printLeftAlignedField(str, attr, cwd, 25); return; } - case ELAPSED: Process_printTime(str, /* convert to hundreds of a second */ this->processList->realtimeMs / 10 - 100 * this->starttime_ctime, coloring); return; + case ELAPSED: { + const uint64_t rt = this->processList->realtimeMs; + const uint64_t st = this->starttime_ctime * 1000; + const uint64_t dt = + rt < st ? 0 : + rt - st; + Process_printTime(str, /* convert to hundreds of a second */ dt / 10, coloring); + return; + } case MAJFLT: Process_printCount(str, this->majflt, coloring); return; case MINFLT: Process_printCount(str, this->minflt, coloring); return; case M_RESIDENT: Process_printKBytes(str, this->m_resident, coloring); return; -- cgit v1.2.3