From f994d773d870df9d6f0c1f89d2808c7e52911c7d Mon Sep 17 00:00:00 2001 From: Andrew Hamilton Date: Mon, 12 Apr 2021 00:14:22 +1000 Subject: [PATCH] Coding style. - The fill3.context can create the screen update task. --- eris/__main__.py | 11 +++-------- eris/fill3.py | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/eris/__main__.py b/eris/__main__.py index 1ef21a4..5738114 100755 --- a/eris/__main__.py +++ b/eris/__main__.py @@ -1139,14 +1139,9 @@ def main(root_path, loop, worker_count=None, editor_command=None, theme=None, for worker in screen.workers: loop.create_task(worker.future) if sys.stdout.isatty(): - update_task = loop.create_task( - fill3.update_screen(screen, appearance_changed_event)) - try: - with fill3.context(loop, appearance_changed_event, screen, - exit_loop=exit_loop): - loop.run_forever() - finally: - update_task.cancel() + with fill3.context(loop, appearance_changed_event, screen, + exit_loop=exit_loop): + loop.run_forever() log.log_message("Program stopped.") else: try: diff --git a/eris/fill3.py b/eris/fill3.py index e7c8009..862df93 100755 --- a/eris/fill3.py +++ b/eris/fill3.py @@ -499,11 +499,16 @@ def context(loop, appearance_changed_event, screen_widget, exit_loop=None): signal_handler(loop, signal.SIGTERM, exit_loop), \ terminal.alternate_buffer(), terminal.interactive(), \ terminal.mouse_tracking(): - loop.add_reader(sys.stdin, on_terminal_input, screen_widget) + update_task = loop.create_task( + update_screen(screen_widget, appearance_changed_event)) try: - yield + loop.add_reader(sys.stdin, on_terminal_input, screen_widget) + try: + yield + finally: + loop.remove_reader(sys.stdin) finally: - loop.remove_reader(sys.stdin) + update_task.cancel() ########################## @@ -535,13 +540,8 @@ def _main(): loop = asyncio.get_event_loop() appearance_changed_event = asyncio.Event() screen = _Screen(appearance_changed_event) - update_task = loop.create_task( - update_screen(screen, appearance_changed_event)) - try: - with context(loop, appearance_changed_event, screen): - loop.run_forever() - finally: - update_task.cancel() + with context(loop, appearance_changed_event, screen): + loop.run_forever() if __name__ == "__main__":