From 519844a9b0f59fdb7de99edac3ba902037f0d3bb Mon Sep 17 00:00:00 2001 From: Timothee 'TTimo' Besset <ttimo@valvesoftware.com> Date: Fri, 1 Sep 2023 10:02:25 -0500 Subject: [PATCH] cleanup zeroconf context management in ServiceListener --- client/devkit_client/__init__.py | 13 ++++--------- client/devkit_client/gui2/gui2.py | 2 +- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/client/devkit_client/__init__.py b/client/devkit_client/__init__.py index e531d0f..0e8a780 100644 --- a/client/devkit_client/__init__.py +++ b/client/devkit_client/__init__.py @@ -369,18 +369,13 @@ class MachineNameType(enum.Enum): return '<{}.{}>'.format(self.__class__.__name__, self.name) -class ServiceListener(object): - def __init__(self, quiet=False): - self.r = zeroconf.Zeroconf() +class ServiceListener: + def __init__(self, zc, quiet=False): + self.zc = zc self.devkits = {} self.devkit_events = queue.Queue() self.quiet = quiet - def __del__(self): - if self.r is not None: - self.r.close() - self.r = None - def remove_service(self, zeroconf, type, name): # Called from the zeroconf thread assert type == STEAM_DEVKIT_TYPE, (name, type) @@ -402,7 +397,7 @@ class ServiceListener(object): if (not self.quiet): logger.info("Service %r found", service_name) get_service_delay = time.perf_counter() - info = self.r.get_service_info(type, name, timeout=ZEROCONF_TIMEOUT) + info = self.zc.get_service_info(type, name, timeout=ZEROCONF_TIMEOUT) get_service_delay = time.perf_counter() - get_service_delay if not self.quiet: logger.debug(f'zeroconf.get_service_info delay: {get_service_delay:.1f}') diff --git a/client/devkit_client/gui2/gui2.py b/client/devkit_client/gui2/gui2.py index b92ccb6..150f21a 100644 --- a/client/devkit_client/gui2/gui2.py +++ b/client/devkit_client/gui2/gui2.py @@ -1093,7 +1093,7 @@ class DevkitsWindow(ToolWindow): def setup(self): super(DevkitsWindow, self).setup() self.zc = zeroconf.Zeroconf() - self.zc_listener = devkit_client.ServiceListener(quiet=False) + self.zc_listener = devkit_client.ServiceListener(self.zc, quiet=False) zeroconf.ServiceBrowser( self.zc, devkit_client.STEAM_DEVKIT_TYPE, -- GitLab