From b1d664f947f250dd229db35bb6fcccc3be9d5bd4 Mon Sep 17 00:00:00 2001 From: aristocratos Date: Tue, 11 Aug 2020 20:32:20 +0200 Subject: [PATCH] Fixed crash on sorting change when lacking permissions --- bpytop.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bpytop.py b/bpytop.py index e629dfe..2c9c53b 100755 --- a/bpytop.py +++ b/bpytop.py @@ -2900,7 +2900,7 @@ class NetCollector(Collector): NetBox._draw_fg() -class ProcCollector(Collector): #! add interrupt on _collect and _draw +class ProcCollector(Collector): '''Collects process stats''' buffer: str = ProcBox.buffer search_filter: str = "" @@ -2917,10 +2917,10 @@ class ProcCollector(Collector): #! add interrupt on _collect and _draw p_values: List[str] = ["pid", "name", "cmdline", "num_threads", "username", "memory_percent", "cpu_percent", "cpu_times", "create_time"] sort_expr: Dict = {} sort_expr["pid"] = compile("p.info['pid']", "str", "eval") - sort_expr["program"] = compile("p.info['name']", "str", "eval") - sort_expr["arguments"] = compile("' '.join(str(p.info['cmdline'])) or p.info['name']", "str", "eval") - sort_expr["threads"] = compile("p.info['num_threads']", "str", "eval") - sort_expr["user"] = compile("p.info['username']", "str", "eval") + sort_expr["program"] = compile("'' if p.info['name'] == 0.0 else p.info['name']", "str", "eval") + sort_expr["arguments"] = compile("' '.join(str(p.info['cmdline'])) or ('' if p.info['name'] == 0.0 else p.info['name'])", "str", "eval") + sort_expr["threads"] = compile("0 if p.info['num_threads'] == 0.0 else p.info['num_threads']", "str", "eval") + sort_expr["user"] = compile("'' if p.info['username'] == 0.0 else p.info['username']", "str", "eval") sort_expr["memory"] = compile("p.info['memory_percent']", "str", "eval") sort_expr["cpu lazy"] = compile("(sum(p.info['cpu_times'][:2] if not p.info['cpu_times'] == 0.0 else [0.0, 0.0]) * 1000 / (time() - p.info['create_time']))", "str", "eval") sort_expr["cpu responsive"] = compile("(p.info['cpu_percent'] if CONFIG.proc_per_core else (p.info['cpu_percent'] / THREADS))", "str", "eval")