mirror of https://github.com/xzeldon/htop.git
Do not scan new processes for deleted libs
This commit is contained in:
parent
efe09a5e39
commit
0e29174211
|
@ -1417,6 +1417,21 @@ static char* LinuxProcessList_updateTtyDevice(TtyDriver* ttyDrivers, unsigned lo
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool isOlderThan(const ProcessList* pl, const Process* proc, unsigned int seconds) {
|
||||||
|
assert(pl->realtimeMs > 0);
|
||||||
|
|
||||||
|
/* Starttime might not yet be parsed */
|
||||||
|
if (proc->starttime_ctime <= 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
uint64_t realtime = pl->realtimeMs / 1000;
|
||||||
|
|
||||||
|
if (realtime < (uint64_t)proc->starttime_ctime)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return realtime - proc->starttime_ctime > seconds;
|
||||||
|
}
|
||||||
|
|
||||||
static bool LinuxProcessList_recurseProcTree(LinuxProcessList* this, openat_arg_t parentFd, const char* dirname, const Process* parent, double period) {
|
static bool LinuxProcessList_recurseProcTree(LinuxProcessList* this, openat_arg_t parentFd, const char* dirname, const Process* parent, double period) {
|
||||||
ProcessList* pl = (ProcessList*) this;
|
ProcessList* pl = (ProcessList*) this;
|
||||||
const struct dirent* entry;
|
const struct dirent* entry;
|
||||||
|
@ -1525,7 +1540,7 @@ static bool LinuxProcessList_recurseProcTree(LinuxProcessList* this, openat_arg_
|
||||||
bool prev = proc->usesDeletedLib;
|
bool prev = proc->usesDeletedLib;
|
||||||
|
|
||||||
if (!proc->isKernelThread && !proc->isUserlandThread &&
|
if (!proc->isKernelThread && !proc->isUserlandThread &&
|
||||||
((ss->flags & PROCESS_FLAG_LINUX_LRS_FIX) || (settings->highlightDeletedExe && !proc->procExeDeleted))) {
|
((ss->flags & PROCESS_FLAG_LINUX_LRS_FIX) || (settings->highlightDeletedExe && !proc->procExeDeleted && isOlderThan(pl, proc, 10)))) {
|
||||||
|
|
||||||
// Check if we really should recalculate the M_LRS value for this process
|
// Check if we really should recalculate the M_LRS value for this process
|
||||||
uint64_t passedTimeInMs = pl->realtimeMs - lp->last_mlrs_calctime;
|
uint64_t passedTimeInMs = pl->realtimeMs - lp->last_mlrs_calctime;
|
||||||
|
|
Loading…
Reference in New Issue