Also provide WM threads with common shutdown event and config loader
This commit is contained in:
parent
5784c0cbc6
commit
03e63fc8d2
|
@ -22,14 +22,20 @@ def read_to_log(pl, client):
|
||||||
pl.error('Client exited with {0}', client.returncode, prefix='awesome')
|
pl.error('Client exited with {0}', client.returncode, prefix='awesome')
|
||||||
|
|
||||||
|
|
||||||
def run(shutdown_event=None, interval=None):
|
def run(thread_shutdown_event=None, pl_shutdown_event=None, pl_config_loader=None,
|
||||||
powerline = Powerline('wm', renderer_module='pango_markup')
|
interval=None):
|
||||||
|
powerline = Powerline(
|
||||||
|
'wm',
|
||||||
|
renderer_module='pango_markup',
|
||||||
|
shutdown_event=pl_shutdown_event,
|
||||||
|
config_loader=pl_config_loader,
|
||||||
|
)
|
||||||
powerline.update_renderer()
|
powerline.update_renderer()
|
||||||
|
|
||||||
if not shutdown_event:
|
if not thread_shutdown_event:
|
||||||
shutdown_event = powerline.shutdown_event
|
thread_shutdown_event = powerline.shutdown_event
|
||||||
|
|
||||||
while not shutdown_event.is_set():
|
while not thread_shutdown_event.is_set():
|
||||||
# powerline.update_interval may change over time
|
# powerline.update_interval may change over time
|
||||||
used_interval = interval or powerline.update_interval
|
used_interval = interval or powerline.update_interval
|
||||||
start_time = monotonic()
|
start_time = monotonic()
|
||||||
|
@ -39,15 +45,15 @@ def run(shutdown_event=None, interval=None):
|
||||||
client.stdin.write(request.encode('utf-8'))
|
client.stdin.write(request.encode('utf-8'))
|
||||||
client.stdin.close()
|
client.stdin.close()
|
||||||
read_to_log(powerline.pl, client)
|
read_to_log(powerline.pl, client)
|
||||||
shutdown_event.wait(max(used_interval - (monotonic() - start_time), 0.1))
|
thread_shutdown_event.wait(max(used_interval - (monotonic() - start_time), 0.1))
|
||||||
|
|
||||||
|
|
||||||
class AwesomeThread(Thread):
|
class AwesomeThread(Thread):
|
||||||
__slots__ = ('powerline_shutdown_event',)
|
__slots__ = ('powerline_shutdown_event',)
|
||||||
|
|
||||||
def __init__(self, shutdown_event):
|
def __init__(self, **kwargs):
|
||||||
super(AwesomeThread, self).__init__()
|
super(AwesomeThread, self).__init__()
|
||||||
self.powerline_shutdown_event = shutdown_event
|
self.powerline_run_kwargs = kwargs
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
run(shutdown_event=self.powerline_shutdown_event)
|
run(**self.powerline_run_kwargs)
|
||||||
|
|
|
@ -71,10 +71,14 @@ def start_wm(args, environ, cwd):
|
||||||
wm_name = args.ext[0][3:]
|
wm_name = args.ext[0][3:]
|
||||||
if wm_name in started_wm_threads:
|
if wm_name in started_wm_threads:
|
||||||
return b''
|
return b''
|
||||||
shutdown_event = Event()
|
thread_shutdown_event = Event()
|
||||||
thread = wm_threads[wm_name](shutdown_event=shutdown_event)
|
thread = wm_threads[wm_name](
|
||||||
|
thread_shutdown_event=thread_shutdown_event,
|
||||||
|
pl_shutdown_event=ts_shutdown_event,
|
||||||
|
pl_config_loader=config_loader,
|
||||||
|
)
|
||||||
thread.start()
|
thread.start()
|
||||||
started_wm_threads[wm_name] = (thread, shutdown_event)
|
started_wm_threads[wm_name] = (thread, thread_shutdown_event)
|
||||||
return b''
|
return b''
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue