diff options
author | MANU <M.Mispelaere@televic.com> | 2018-01-16 08:58:02 +0100 |
---|---|---|
committer | MANU <M.Mispelaere@televic.com> | 2018-01-16 08:58:02 +0100 |
commit | ee70f44465967c8f88742db88567820f98fa9d6e (patch) | |
tree | 48875f2ecb9b8843bc4fd9458984f11aaaf69149 | |
parent | 92d101613be41ecb2f2054c3f43a006fbe6f9966 (diff) | |
download | pyserial-git-ee70f44465967c8f88742db88567820f98fa9d6e.tar.gz |
return b'' when connection closes on rfc2217 connection
-rw-r--r-- | serial/rfc2217.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/serial/rfc2217.py b/serial/rfc2217.py index e8ddb7f..c7e58f1 100644 --- a/serial/rfc2217.py +++ b/serial/rfc2217.py @@ -613,7 +613,10 @@ class Serial(SerialBase): while len(data) < size: if self._thread is None: raise SerialException('connection failed (reader thread died)') - data += self._read_buffer.get(True, timeout.time_left()) + buf = self._read_buffer.get(True, timeout.time_left()) + if buf is None: + return bytes(data) + data += buf if timeout.expired(): break except Queue.Empty: # -> timeout @@ -738,8 +741,10 @@ class Serial(SerialBase): # connection fails -> terminate loop if self.logger: self.logger.debug("socket error in reader thread: {}".format(e)) + self._read_buffer.put(None) break if not data: + self._read_buffer.put(None) break # lost connection for byte in iterbytes(data): if mode == M_NORMAL: |