From 167470e6381111001d73af6a6c10a6494fcc5afa Mon Sep 17 00:00:00 2001 From: Duane Johnson Date: Tue, 15 Nov 2011 22:03:18 -0600 Subject: [PATCH] Added a try/except block around readline so that disconnection does not yield a traceback. --- printcore.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/printcore.py b/printcore.py index 8573cec..66fa57d 100755 --- a/printcore.py +++ b/printcore.py @@ -1,6 +1,7 @@ #!/usr/bin/env python from serial import Serial from threading import Thread +from select import error as SelectError import time import sys @@ -76,7 +77,15 @@ class printcore(): while(True): if(not self.printer or not self.printer.isOpen): break - line=self.printer.readline() + try: + line=self.printer.readline() + except SelectError, e: + if 'Bad file descriptor' in e.args[1]: + print "Can't read from printer (disconnected?)." + break + else: + raise + if(len(line)>1): self.log+=[line] if self.recvcb is not None: