Can force status bar to update early by sending a USR1 signal to the process

This commit is contained in:
WORD559 2018-05-06 09:31:46 +01:00
parent 4598108006
commit 705c18dbcd
2 changed files with 20 additions and 12 deletions

View file

@ -3,6 +3,7 @@
import os
import sys
import logging
import signal
import bumblebee.theme
import bumblebee.engine
import bumblebee.config
@ -18,6 +19,9 @@ except Exception:
def main():
def sig_USR1_handler(signum,stack):
engine.write_output()
config = bumblebee.config.Config(sys.argv[1:])
if config.debug():
@ -45,6 +49,7 @@ def main():
output=output,
inp=inp,
)
signal.signal(10,sig_USR1_handler)
engine.run()
except KeyboardInterrupt as error:
inp.stop()

View file

@ -255,6 +255,14 @@ class Engine(object):
"""Start the event loop"""
self._output.start()
while self.running():
self.write_output()
if self.running():
self.input.wait(float(self._config.get("interval", 1)))
self._output.stop()
self.input.stop()
def write_output(self):
self._output.begin()
for module in self._modules:
self._current_module = module
@ -267,10 +275,5 @@ class Engine(object):
self._output.draw(widget=module.errorWidget(), module=module, engine=self)
self._output.flush()
self._output.end()
if self.running():
self.input.wait(float(self._config.get("interval", 1)))
self._output.stop()
self.input.stop()
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4