Skip to content
Snippets Groups Projects
Commit 771e2ede authored by Martin Teichmann's avatar Martin Teichmann
Browse files

wait for initialization of serial terminal

parent 6e26a03a
No related branches found
No related tags found
No related merge requests found
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
# with this program; if not, write to the Free Software Foundation, Inc., # with this program; if not, write to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
from asyncio import ensure_future, Event, Queue, StreamReader, gather from asyncio import ensure_future, Event, Future, Queue, StreamReader, gather
from .ebpfcat import Device, TerminalVar from .ebpfcat import Device, TerminalVar
...@@ -45,12 +45,14 @@ class Serial(Device): ...@@ -45,12 +45,14 @@ class Serial(Device):
def write(self, data): def write(self, data):
self.buffer.put_nowait(data) self.buffer.put_nowait(data)
def connect(self): async def connect(self):
self.task = ensure_future(self.run()) connected = Future()
self.task = ensure_future(self.run(connected))
self.reader = StreamReader() self.reader = StreamReader()
await connected
return self.reader, self return self.reader, self
async def run(self): async def run(self, connected):
while not self.init_accept: while not self.init_accept:
self.init_request = True self.init_request = True
await self.data_arrived.wait() await self.data_arrived.wait()
...@@ -58,6 +60,8 @@ class Serial(Device): ...@@ -58,6 +60,8 @@ class Serial(Device):
while self.init_accept: while self.init_accept:
await self.data_arrived.wait() await self.data_arrived.wait()
connected.set_result(None)
await gather(self.receive(), self.transmit()) await gather(self.receive(), self.transmit())
async def receive(self): async def receive(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment