Change process title of threads to something meaningful, if setproctitle is installed.

This commit is contained in:
enkore 2013-03-02 20:05:41 +01:00
parent d6f1cbbd46
commit 3cac448f6e
2 changed files with 11 additions and 0 deletions

View File

@ -20,6 +20,9 @@ class Module(SettingsBase):
self.output["name"] = self.__name__ self.output["name"] = self.__name__
json.insert(0, self.output) json.insert(0, self.output)
def __repr__(self):
return self.__class__.__name__
class AsyncModule(Module): class AsyncModule(Module):
def registered(self, status_handler): def registered(self, status_handler):
self.thread = Thread(target=self.mainloop) self.thread = Thread(target=self.mainloop)

View File

@ -5,6 +5,12 @@ import time
import traceback import traceback
import collections import collections
try:
from setproctitle import setproctitle
except ImportError:
def setproctitle(title):
pass
if hasattr(time, "perf_counter"): if hasattr(time, "perf_counter"):
timer = time.perf_counter timer = time.perf_counter
else: else:
@ -58,6 +64,8 @@ class Thread(threading.Thread):
while len(self) <= self.start_barrier: while len(self) <= self.start_barrier:
time.sleep(0.3) time.sleep(0.3)
setproctitle("i3pystatus: {name}/{workloads}".format(name=self.name, workloads=list(map(repr, self.workloads))))
while self: while self:
for workload in self: for workload in self:
workload() workload()