# HG changeset patch # User Laman # Date 2017-01-07 23:02:14 # Node ID a54daf689665da3f6787a7044d71703f6c11667e # Parent 4b4cae6939e8e81e81e72c98bccf383be33df488 core exiting on gui exit diff --git a/src/core.py b/src/core.py --- a/src/core.py +++ b/src/core.py @@ -1,4 +1,6 @@ +import os import multiprocessing +import threading import logging as log import PIL from util import MsgQueue @@ -18,7 +20,8 @@ class Core: self._ownMessages=MsgQueue(self._handleEvent) self._guiMessages=MsgQueue() - self._frame=PIL.Image.open("../images/7.jpg") + imgPath=os.path.join(os.path.dirname(__file__), "..","images","7.jpg") + self._frame=PIL.Image.open(imgPath) self._guiProc=multiprocessing.Process(name="gui", target=gui, args=(self._guiMessages,self._ownMessages)) self._guiProc.start() @@ -36,7 +39,12 @@ class Core: self._guiMessages.send("setGameState",(self.detector.board,)) def listen(self): - self._ownMessages.listen() + listenerThread=threading.Thread(target=lambda: self._ownMessages.listen()) + listenerThread.start() + + def joinGui(self): + self._guiProc.join() + self._ownMessages.send("kill") def _handleEvent(self,e): actions={"setCorners":self.setCorners, "setTresholds":self.setTresholds} @@ -46,6 +54,7 @@ class Core: core=Core() core.listen() +core.joinGui() """ core diff --git a/src/util.py b/src/util.py --- a/src/util.py +++ b/src/util.py @@ -22,6 +22,7 @@ class MsgQueue: if self._queue.empty(): self._event.clear() log.info(msg) + if msg[0]=="kill": break self._handleEvent(msg) def setHandler(self,handler):