From 8163b8164ff90681cf1400ab540beb8fffdeb60f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Sun, 28 Mar 2021 18:18:56 +0200 Subject: TaskMeter: always show number of threads Always show the number of kernel and userland threads, even when they are disabled to not be shown in the process list. The data is already available and might improve understanding the system utilization. Use a shadow color in case the kind of thread is hidden, else the normal meter one. --- TasksMeter.c | 41 ++++++++++++++--------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) (limited to 'TasksMeter.c') diff --git a/TasksMeter.c b/TasksMeter.c index 7b649b0c..9c6b9cd8 100644 --- a/TasksMeter.c +++ b/TasksMeter.c @@ -29,12 +29,8 @@ static void TasksMeter_updateValues(Meter* this) { this->values[1] = pl->userlandThreads; this->values[2] = pl->totalTasks - pl->kernelThreads - pl->userlandThreads; this->values[3] = MINIMUM(pl->runningTasks, pl->cpuCount); - if (pl->totalTasks > this->total) { - this->total = pl->totalTasks; - } - if (pl->settings->hideKernelThreads) { - this->values[0] = 0; - } + this->total = pl->totalTasks; + xSnprintf(this->txtBuffer, sizeof(this->txtBuffer), "%d/%d", (int) this->values[3], (int) this->total); } @@ -43,28 +39,19 @@ static void TasksMeter_display(const Object* cast, RichString* out) { const Settings* settings = this->pl->settings; char buffer[20]; - int processes = (int) this->values[2]; - - xSnprintf(buffer, sizeof(buffer), "%d", processes); + xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[2]); RichString_writeAscii(out, CRT_colors[METER_VALUE], buffer); - int threadValueColor = CRT_colors[METER_VALUE]; - int threadCaptionColor = CRT_colors[METER_TEXT]; - if (settings->highlightThreads) { - threadValueColor = CRT_colors[PROCESS_THREAD_BASENAME]; - threadCaptionColor = CRT_colors[PROCESS_THREAD]; - } - if (!settings->hideUserlandThreads) { - RichString_appendAscii(out, CRT_colors[METER_TEXT], ", "); - xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[1]); - RichString_appendAscii(out, threadValueColor, buffer); - RichString_appendAscii(out, threadCaptionColor, " thr"); - } - if (!settings->hideKernelThreads) { - RichString_appendAscii(out, CRT_colors[METER_TEXT], ", "); - xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[0]); - RichString_appendAscii(out, threadValueColor, buffer); - RichString_appendAscii(out, threadCaptionColor, " kthr"); - } + + RichString_appendAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], ", "); + xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[1]); + RichString_appendAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[TASKS_RUNNING], buffer); + RichString_appendAscii(out, settings->hideUserlandThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], " thr"); + + RichString_appendAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], ", "); + xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[0]); + RichString_appendAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[TASKS_RUNNING], buffer); + RichString_appendAscii(out, settings->hideKernelThreads ? CRT_colors[METER_SHADOW] : CRT_colors[METER_TEXT], " kthr"); + RichString_appendAscii(out, CRT_colors[METER_TEXT], "; "); xSnprintf(buffer, sizeof(buffer), "%d", (int)this->values[3]); RichString_appendAscii(out, CRT_colors[TASKS_RUNNING], buffer); -- cgit v1.2.3