diff options
Diffstat (limited to 'glances/programs.py')
-rw-r--r-- | glances/programs.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/glances/programs.py b/glances/programs.py index 57e38672..d504f386 100644 --- a/glances/programs.py +++ b/glances/programs.py @@ -7,6 +7,8 @@ # SPDX-License-Identifier: LGPL-3.0-only # +from collections import Counter + # from glances.logger import logger # This constant defines the list of available processes sort key @@ -21,9 +23,9 @@ def create_program_dict(p): 'num_threads': p['num_threads'] or 0, 'cpu_percent': p['cpu_percent'] or 0, 'memory_percent': p['memory_percent'] or 0, - 'cpu_times': p['cpu_times'] or (), - 'memory_info': p['memory_info'] or (), - 'io_counters': p['io_counters'] or (), + 'cpu_times': p['cpu_times'] or {}, + 'memory_info': p['memory_info'] or {}, + 'io_counters': p['io_counters'] or {}, 'childrens': [p['pid']], # Others keys are not used # but should be set to be compliant with the existing process_list @@ -35,14 +37,15 @@ def create_program_dict(p): 'status': p['status'], } + def update_program_dict(program, p): """Update an existing entry in the dict (existing program)""" # some values can be None, e.g. macOS system processes program['num_threads'] += p['num_threads'] or 0 program['cpu_percent'] += p['cpu_percent'] or 0 program['memory_percent'] += p['memory_percent'] or 0 - program['cpu_times'] += p['cpu_times'] or () - program['memory_info'] += p['memory_info'] or () + program['cpu_times'] = dict(Counter(program['cpu_times'] or {}) + Counter(p['cpu_times'] or {})) + program['memory_info'] = dict(Counter(program['memory_info'] or {}) + Counter(p['memory_info'] or {})) program['io_counters'] += p['io_counters'] program['childrens'].append(p['pid']) @@ -51,6 +54,7 @@ def update_program_dict(program, p): program['nice'] = p['nice'] if p['nice'] == program['nice'] else '_' program['status'] = p['status'] if p['status'] == program['status'] else '_' + def processes_to_programs(processes): """Convert a list of processes to a list of programs.""" # Start to build a dict of programs (key is program name) |