Merge pull request #593 from natoscott/init-pl-time

Update timestamps for the special process scans at startup also
This commit is contained in:
Nathan Scott 2021-04-09 21:13:33 +10:00 committed by GitHub
commit 0006cc51b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions

View File

@ -241,14 +241,14 @@ static CommandLineSettings parseArguments(const char* program, int argc, char**
return flags; return flags;
} }
static void millisleep(unsigned long millisec) { static void CommandLine_delay(ProcessList* pl, unsigned long millisec) {
struct timespec req = { struct timespec req = {
.tv_sec = 0, .tv_sec = 0,
.tv_nsec = millisec * 1000000L .tv_nsec = millisec * 1000000L
}; };
while(nanosleep(&req,&req)==-1) { while (nanosleep(&req, &req) == -1)
continue; continue;
} Platform_gettime_realtime(&pl->realtime, &pl->realtimeMs);
} }
static void setCommFilter(State* state, char** commFilter) { 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); ScreenManager_add(scr, (Panel*) panel, -1);
ProcessList_scan(pl, false); ProcessList_scan(pl, false);
millisleep(75); CommandLine_delay(pl, 75);
ProcessList_scan(pl, false); ProcessList_scan(pl, false);
if (settings->allBranchesCollapsed) if (settings->allBranchesCollapsed)

View File

@ -35,9 +35,11 @@ ProcessList* ProcessList_init(ProcessList* this, const ObjectClass* klass, Users
// set later by platform-specific code // set later by platform-specific code
this->cpuCount = 0; this->cpuCount = 0;
this->monotonicMs = 0; this->monotonicMs = 0;
// always maintain valid realtime timestamps
Platform_gettime_realtime(&this->realtime, &this->realtimeMs);
#ifdef HAVE_LIBHWLOC #ifdef HAVE_LIBHWLOC
this->topologyOk = false; this->topologyOk = false;
if (hwloc_topology_init(&this->topology) == 0) { if (hwloc_topology_init(&this->topology) == 0) {