os.conn.Serial: Attempt to fix closing of invalid file descriptor

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2023-11-23 17:30:22 +01:00
commit 7e106811b2

View file

@ -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