diff --git a/src/gui/__init__.py b/src/gui/__init__.py --- a/src/gui/__init__.py +++ b/src/gui/__init__.py @@ -37,7 +37,7 @@ class GUI: self.root.bind("<>", lambda e: self.setUp()) self.root.bind("<>", lambda e: self.setRecording()) self.root.bind("",lambda e: Settings(self)) - self.mainWindow.bind("",lambda e: self._ownMessages.send("!kill",("gui",))) + self.mainWindow.bind("",lambda e: self._shutDown()) self.setUp() @@ -45,8 +45,8 @@ class GUI: self._ownMessages=ownMessages self._coreMessages=coreMessages - self.listenerThread=threading.Thread(target=lambda: ownMessages.listen(self._handleEvent)) - self.listenerThread.start() + self._listenerThread=threading.Thread(target=lambda: ownMessages.listen(self._handleEvent)) + self._listenerThread.start() self.mainWindow.mainloop() @@ -70,6 +70,11 @@ class GUI: def sendParams(self): self.sendMsg("setParams",(self.detector.params.copy(),)) + def _shutDown(self): + log.info("GUI proc exiting.") + self._ownMessages.send("!kill",("gui",)) + self._listenerThread.join() + def _handleEvent(self,e): actions={ "setFrame": self._frameHandler,