From e28e66d8486843256ca918ae0a502c85e8884a2c Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Tue, 26 Apr 2022 23:40:29 +0200 Subject: [PATCH] use event for discovery service loop --- src/logic/DiscoveryService.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/logic/DiscoveryService.py b/src/logic/DiscoveryService.py index 194c13f..a8ae1f4 100644 --- a/src/logic/DiscoveryService.py +++ b/src/logic/DiscoveryService.py @@ -15,7 +15,7 @@ class DiscoveryService: self._responseMessage = responseMessage self._apiPort = apiPort - self._shouldStop = False + self._stopEvent = threading.Event() def start(self): LOGGER.debug(f'Start discovery thread (listening on {self._discoveryPort}, responding on {self._responsePort})') @@ -27,7 +27,7 @@ class DiscoveryService: with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock: sock.bind(('', self._discoveryPort)) - while not self._shouldStop: + while not self._stopEvent.isSet(): try: data, remoteIpAndPort = sock.recvfrom(1024) data = data.strip() @@ -42,5 +42,8 @@ class DiscoveryService: except BaseException as e: LOGGER.error(e) + LOGGER.debug(f'Stopped discovery thread') + def stop(self): - self._shouldStop = True + LOGGER.debug(f'Discovery set to stop') + self._stopEvent.set() -- GitLab