From: Youness Alaoui Date: Sat, 27 Dec 2014 23:01:42 +0000 (-0500) Subject: Check for EOF on the serialCommunication module X-Git-Tag: 14.09-1.18~5^2~16 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=fb1c778d4b5fde47537d84d4ae08fa76b9d0fa0b;p=cura.git Check for EOF on the serialCommunication module If Cura has terminated, stdin will be in EOF which will cause the readline to return an empty string. By catching that, we will be abl to quit instead of spamming stderr with ['']. Fixes #63 and possibly issue #45 as well. --- diff --git a/Cura/serialCommunication.py b/Cura/serialCommunication.py index efff5e0d..efc6e72d 100644 --- a/Cura/serialCommunication.py +++ b/Cura/serialCommunication.py @@ -51,9 +51,14 @@ class serialComm(object): pass def monitorStdin(self): - while not self._comm.isClosed(): - line = sys.stdin.readline().strip() - line = line.split(':', 1) + while not (self._comm.isClosed() or sys.stdin.closed): + line = sys.stdin.readline() + # If readline returns an empty string it means that + # we've hit stdin's EOF, probably because the parent was + # closed, so we need to exit as well instead of spamming stderr. + if line == '': + break + line = line.strip().split(':', 1) if line[0] == 'STOP': self._comm.cancelPrint() self._gcodeList = ['M110']