diff --git a/system/ui/lib/wrapper.py b/system/ui/lib/wrapper.py index 24278644ec..04247d0bcf 100644 --- a/system/ui/lib/wrapper.py +++ b/system/ui/lib/wrapper.py @@ -4,24 +4,23 @@ from openpilot.system.ui.lib.application import gui_app class Wrapper: - def __init__(self, title: str, renderer_cls, *renderer_args): + def __init__(self, title: str, renderer_cls, *args): self._title = title - self._renderer_cls = renderer_cls - self._renderer_args = renderer_args + self._renderer_class = renderer_cls + self._args = args + self._renderer = None self._stop_event = threading.Event() self._thread = threading.Thread(target=self._run, args=(self._stop_event,), daemon=True) self._thread.start() - self._initialized = False def _run(self, stop_event: threading.Event): gui_app.init_window(self._title) - renderer = self._renderer_cls(*self._renderer_args) - self._initialized = True + self._renderer = self._renderer_class(*self._args) try: for _ in gui_app.render(): if stop_event.is_set(): break - renderer.render() + self._renderer.render() finally: gui_app.close() @@ -30,7 +29,7 @@ class Wrapper: def wait(self): """wait for renderer to be initialized""" - while not self._initialized and self._thread is not None and self._thread.is_alive(): + while self._renderer is None and self._thread is not None and self._thread.is_alive(): time.sleep(0.01) def close(self):