From 3cac448f6e47d20e0a7b94501de892b376fdc979 Mon Sep 17 00:00:00 2001 From: enkore Date: Sat, 2 Mar 2013 20:05:41 +0100 Subject: [PATCH] Change process title of threads to something meaningful, if setproctitle is installed. --- i3pystatus/core/modules.py | 3 +++ i3pystatus/core/threads.py | 8 ++++++++ 2 files changed, 11 insertions(+) diff --git a/i3pystatus/core/modules.py b/i3pystatus/core/modules.py index 31ca615..379a31b 100644 --- a/i3pystatus/core/modules.py +++ b/i3pystatus/core/modules.py @@ -20,6 +20,9 @@ class Module(SettingsBase): self.output["name"] = self.__name__ json.insert(0, self.output) + def __repr__(self): + return self.__class__.__name__ + class AsyncModule(Module): def registered(self, status_handler): self.thread = Thread(target=self.mainloop) diff --git a/i3pystatus/core/threads.py b/i3pystatus/core/threads.py index cb8348d..487dc7f 100644 --- a/i3pystatus/core/threads.py +++ b/i3pystatus/core/threads.py @@ -5,6 +5,12 @@ import time import traceback import collections +try: + from setproctitle import setproctitle +except ImportError: + def setproctitle(title): + pass + if hasattr(time, "perf_counter"): timer = time.perf_counter else: @@ -58,6 +64,8 @@ class Thread(threading.Thread): while len(self) <= self.start_barrier: time.sleep(0.3) + setproctitle("i3pystatus: {name}/{workloads}".format(name=self.name, workloads=list(map(repr, self.workloads)))) + while self: for workload in self: workload()