From 367561175ab9da93d5c21861ec6c6b52933ccf15 Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Thu, 8 Apr 2021 09:26:48 +1000 Subject: Update timestamps for the special process scans at startup also Resolves https://github.com/htop-dev/htop/issues/592 --- CommandLine.c | 8 ++++---- ProcessList.c | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CommandLine.c b/CommandLine.c index bd17c696..796018af 100644 --- a/CommandLine.c +++ b/CommandLine.c @@ -241,14 +241,14 @@ static CommandLineSettings parseArguments(const char* program, int argc, char** return flags; } -static void millisleep(unsigned long millisec) { +static void CommandLine_delay(ProcessList* pl, unsigned long millisec) { struct timespec req = { .tv_sec = 0, .tv_nsec = millisec * 1000000L }; - while(nanosleep(&req,&req)==-1) { + while (nanosleep(&req, &req) == -1) continue; - } + Platform_gettime_realtime(&pl->realtime, &pl->realtimeMs); } static void setCommFilter(State* state, char** commFilter) { @@ -333,7 +333,7 @@ int CommandLine_run(const char* name, int argc, char** argv) { ScreenManager_add(scr, (Panel*) panel, -1); ProcessList_scan(pl, false); - millisleep(75); + CommandLine_delay(pl, 75); ProcessList_scan(pl, false); if (settings->allBranchesCollapsed) diff --git a/ProcessList.c b/ProcessList.c index 6bc15611..1a84b651 100644 --- a/ProcessList.c +++ b/ProcessList.c @@ -35,9 +35,11 @@ ProcessList* ProcessList_init(ProcessList* this, const ObjectClass* klass, Users // set later by platform-specific code this->cpuCount = 0; - this->monotonicMs = 0; + // always maintain valid realtime timestamps + Platform_gettime_realtime(&this->realtime, &this->realtimeMs); + #ifdef HAVE_LIBHWLOC this->topologyOk = false; if (hwloc_topology_init(&this->topology) == 0) { -- cgit v1.2.3