mirror of https://github.com/xzeldon/htop.git
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.
This commit is contained in:
parent
5afb57b49e
commit
8163b8164f
6
CRT.c
6
CRT.c
|
@ -118,6 +118,7 @@ static int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
|
|||
[UPTIME] = A_BOLD | ColorPair(Cyan, Black),
|
||||
[BATTERY] = A_BOLD | ColorPair(Cyan, Black),
|
||||
[LARGE_NUMBER] = A_BOLD | ColorPair(Red, Black),
|
||||
[METER_SHADOW] = A_BOLD | ColorPairGrayBlack,
|
||||
[METER_TEXT] = ColorPair(Cyan, Black),
|
||||
[METER_VALUE] = A_BOLD | ColorPair(Cyan, Black),
|
||||
[METER_VALUE_ERROR] = A_BOLD | ColorPair(Red, Black),
|
||||
|
@ -209,6 +210,7 @@ static int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
|
|||
[UPTIME] = A_BOLD,
|
||||
[BATTERY] = A_BOLD,
|
||||
[LARGE_NUMBER] = A_BOLD,
|
||||
[METER_SHADOW] = A_DIM,
|
||||
[METER_TEXT] = A_NORMAL,
|
||||
[METER_VALUE] = A_BOLD,
|
||||
[METER_VALUE_ERROR] = A_BOLD,
|
||||
|
@ -300,6 +302,7 @@ static int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
|
|||
[UPTIME] = ColorPair(Yellow, White),
|
||||
[BATTERY] = ColorPair(Yellow, White),
|
||||
[LARGE_NUMBER] = ColorPair(Red, White),
|
||||
[METER_SHADOW] = ColorPair(Blue, White),
|
||||
[METER_TEXT] = ColorPair(Blue, White),
|
||||
[METER_VALUE] = ColorPair(Black, White),
|
||||
[METER_VALUE_ERROR] = A_BOLD | ColorPair(Red, White),
|
||||
|
@ -391,6 +394,7 @@ static int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
|
|||
[UPTIME] = ColorPair(Yellow, Black),
|
||||
[BATTERY] = ColorPair(Yellow, Black),
|
||||
[LARGE_NUMBER] = ColorPair(Red, Black),
|
||||
[METER_SHADOW] = A_BOLD | ColorPairGrayBlack,
|
||||
[METER_TEXT] = ColorPair(Blue, Black),
|
||||
[METER_VALUE] = ColorPair(Black, Black),
|
||||
[METER_VALUE_ERROR] = A_BOLD | ColorPair(Red, Black),
|
||||
|
@ -482,6 +486,7 @@ static int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
|
|||
[UPTIME] = A_BOLD | ColorPair(Yellow, Blue),
|
||||
[BATTERY] = A_BOLD | ColorPair(Yellow, Blue),
|
||||
[LARGE_NUMBER] = A_BOLD | ColorPair(Red, Blue),
|
||||
[METER_SHADOW] = ColorPair(Cyan, Blue),
|
||||
[METER_TEXT] = ColorPair(Cyan, Blue),
|
||||
[METER_VALUE] = A_BOLD | ColorPair(Cyan, Blue),
|
||||
[METER_VALUE_ERROR] = A_BOLD | ColorPair(Red, Blue),
|
||||
|
@ -573,6 +578,7 @@ static int CRT_colorSchemes[LAST_COLORSCHEME][LAST_COLORELEMENT] = {
|
|||
[UPTIME] = ColorPair(Green, Black),
|
||||
[BATTERY] = ColorPair(Green, Black),
|
||||
[LARGE_NUMBER] = A_BOLD | ColorPair(Red, Black),
|
||||
[METER_SHADOW] = A_BOLD | ColorPairGrayBlack,
|
||||
[METER_TEXT] = ColorPair(Cyan, Black),
|
||||
[METER_VALUE] = ColorPair(Green, Black),
|
||||
[METER_VALUE_ERROR] = A_BOLD | ColorPair(Red, Black),
|
||||
|
|
1
CRT.h
1
CRT.h
|
@ -53,6 +53,7 @@ typedef enum ColorElements_ {
|
|||
PANEL_SELECTION_FOLLOW,
|
||||
PANEL_SELECTION_UNFOCUS,
|
||||
LARGE_NUMBER,
|
||||
METER_SHADOW,
|
||||
METER_TEXT,
|
||||
METER_VALUE,
|
||||
METER_VALUE_ERROR,
|
||||
|
|
35
TasksMeter.c
35
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;
|
||||
}
|
||||
|
||||
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], ", ");
|
||||
|
||||
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, threadValueColor, buffer);
|
||||
RichString_appendAscii(out, threadCaptionColor, " thr");
|
||||
}
|
||||
if (!settings->hideKernelThreads) {
|
||||
RichString_appendAscii(out, CRT_colors[METER_TEXT], ", ");
|
||||
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, threadValueColor, buffer);
|
||||
RichString_appendAscii(out, threadCaptionColor, " kthr");
|
||||
}
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue