From f693d3aa3782d3b284179a4cbbef2fa52538052c Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Fri, 5 Jan 2018 21:41:49 -0700 Subject: [PATCH] Call close() to stop everything properly --- openlp/core/api/websockets.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/openlp/core/api/websockets.py b/openlp/core/api/websockets.py index 785f3c8ff..ea03c0681 100644 --- a/openlp/core/api/websockets.py +++ b/openlp/core/api/websockets.py @@ -79,8 +79,8 @@ class WebSocketWorker(ThreadWorker, RegistryProperties, LogMixin): address = Settings().value('api/ip address') port = Settings().value('api/websocket port') # Start the event loop - event_loop = asyncio.new_event_loop() - asyncio.set_event_loop(event_loop) + self.event_loop = asyncio.new_event_loop() + asyncio.set_event_loop(self.event_loop) # Create the websocker server loop = 1 self.server = None @@ -96,8 +96,8 @@ class WebSocketWorker(ThreadWorker, RegistryProperties, LogMixin): log.error('Unable to start WebSocket server {addr}:{port}, giving up'.format(addr=address, port=port)) if self.server: # If the websocket server exists, start listening - event_loop.run_until_complete(self.server) - event_loop.run_forever() + self.event_loop.run_until_complete(self.server) + self.event_loop.run_forever() self.quit.emit() def stop(self): @@ -108,6 +108,8 @@ class WebSocketWorker(ThreadWorker, RegistryProperties, LogMixin): self.server.ws_server.close() elif hasattr(self.server, 'server'): self.server.server.close() + self.event_loop.stop() + self.event_loop.close() class WebSocketServer(RegistryProperties, LogMixin):