From 7e106811b24358303d4b10d0efb2365361416af8 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Thu, 23 Nov 2023 17:30:22 +0100 Subject: [PATCH] os.conn.Serial: Attempt to fix closing of invalid file descriptor Signed-off-by: Jan Lindemann --- src/python/devtest/os/conn/Serial.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/python/devtest/os/conn/Serial.py b/src/python/devtest/os/conn/Serial.py index 92e93f1..2514921 100644 --- a/src/python/devtest/os/conn/Serial.py +++ b/src/python/devtest/os/conn/Serial.py @@ -118,6 +118,7 @@ class Serial(Connection): # export self._parent = parent self._rd_stream = None self._wr_stream = None + self._protocol = None self._fd = None self._stream_reader = None self._stream_writer = None @@ -259,7 +260,8 @@ class Serial(Connection): # export #transp, proto = await self.pair.env.eloop.connect_read_pipe(Fifos.Protocol, self._rd_stream) #self._stream_reader = asyncio.streams.StreamReader(transp, proto, None, loop) self._stream_reader = asyncio.StreamReader(limit=limit, loop=loop) - await loop.connect_read_pipe(lambda: asyncio.StreamReaderProtocol(self._stream_reader, loop=loop), self._rd_stream) + self._protocol = asyncio.StreamReaderProtocol(self._stream_reader, loop=loop) + await loop.connect_read_pipe(lambda: self._protocol, self._rd_stream) except: await self.close() raise @@ -276,6 +278,7 @@ class Serial(Connection): # export #self._rd_stream.close() #await self._rd_stream.wait_closed() self._rd_stream = None + self._protocol = None self._stream_writer = None self._stream_reader = None self._fd = None