From b74673fe37fd379fc350789e696470556776d815 Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Thu, 31 Aug 2023 11:56:43 +1000 Subject: Rename ProcessList to ProcessTable throughout Following up with some discusson from a few months back, where it was proposed that ProcessTable is a better name. This data structure is definitely not a list ... if it was one-dimensional it'd be a set, but in practice it has much more in common with a two-dimensional table. The Process table is a familiar operating system concept for many people too so it resonates a little in that way as well. --- ProcessList.c | 94 ----------------------------------------------------------- 1 file changed, 94 deletions(-) delete mode 100644 ProcessList.c (limited to 'ProcessList.c') diff --git a/ProcessList.c b/ProcessList.c deleted file mode 100644 index 516dcd7c..00000000 --- a/ProcessList.c +++ /dev/null @@ -1,94 +0,0 @@ -/* -htop - ProcessList.c -(C) 2004,2005 Hisham H. Muhammad -Released under the GNU GPLv2+, see the COPYING file -in the source distribution for its full text. -*/ - -#include "ProcessList.h" - -#include -#include -#include - -#include "CRT.h" -#include "DynamicColumn.h" -#include "Hashtable.h" -#include "Macros.h" -#include "Platform.h" -#include "Vector.h" -#include "XUtils.h" - - -void ProcessList_init(ProcessList* this, const ObjectClass* klass, Machine* host, Hashtable* pidMatchList) { - Table_init(&this->super, klass, host); - - this->pidMatchList = pidMatchList; -} - -void ProcessList_done(ProcessList* this) { - Table_done(&this->super); -} - -Process* ProcessList_getProcess(ProcessList* this, pid_t pid, bool* preExisting, Process_New constructor) { - const Table* table = &this->super; - Process* proc = (Process*) Hashtable_get(table->table, pid); - *preExisting = proc != NULL; - if (proc) { - assert(Vector_indexOf(table->rows, proc, Row_idEqualCompare) != -1); - assert(Process_getPid(proc) == pid); - } else { - proc = constructor(table->host); - assert(proc->cmdline == NULL); - Process_setPid(proc, pid); - } - return proc; -} - -static void ProcessList_prepareEntries(Table* super) { - ProcessList* this = (ProcessList*) super; - this->totalTasks = 0; - this->userlandThreads = 0; - this->kernelThreads = 0; - this->runningTasks = 0; - - Table_prepareEntries(super); -} - -static void ProcessList_iterateEntries(Table* super) { - ProcessList* this = (ProcessList*) super; - // calling into platform-specific code - ProcessList_goThroughEntries(this); -} - -static void ProcessList_cleanupEntries(Table* super) { - Machine* host = super->host; - const Settings* settings = host->settings; - - // Finish process table update, culling any exit'd processes - for (int i = Vector_size(super->rows) - 1; i >= 0; i--) { - Process* p = (Process*) Vector_get(super->rows, i); - - // tidy up Process state after refreshing the ProcessList table - Process_makeCommandStr(p, settings); - - // keep track of the highest UID for column scaling - if (p->st_uid > host->maxUserId) - host->maxUserId = p->st_uid; - - Table_cleanupRow(super, (Row*) p, i); - } - - // compact the table in case of deletions - Table_compact(super); -} - -const TableClass ProcessList_class = { - .super = { - .extends = Class(Table), - .delete = ProcessList_delete, - }, - .prepare = ProcessList_prepareEntries, - .iterate = ProcessList_iterateEntries, - .cleanup = ProcessList_cleanupEntries, -}; -- cgit v1.2.3