diff --git a/src/python/jw/pkg/lib/App.py b/src/python/jw/pkg/lib/App.py index a298c1cf..6eb45581 100644 --- a/src/python/jw/pkg/lib/App.py +++ b/src/python/jw/pkg/lib/App.py @@ -216,11 +216,16 @@ class App: # export ) def close(self) -> None: + """Close the application and release all resources""" + if self.__async_runner is not None: + self.__async_runner.close() + self.__async_runner = None if self.__own_eloop: if self.__eloop is not None: if not self.__eloop.is_closed(): self.__eloop.close() self.__eloop = None + self.__own_eloop = False async def __aenter__(self) -> App: return self @@ -344,9 +349,6 @@ class App: # export try: ret = self.eloop.run_until_complete(self.__run(argv)) finally: - if self.__async_runner: - self.__async_runner.close() - self.__async_runner = None self.close() return ret