From cfd31c52516b82e8cf8215deeebb9ced7fdf57a9 Mon Sep 17 00:00:00 2001 From: Dmitriy Ryajov Date: Wed, 2 Oct 2019 15:47:07 -0600 Subject: [PATCH] properly handle empty messages --- libp2p/muxers/mplex/mplex.nim | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libp2p/muxers/mplex/mplex.nim b/libp2p/muxers/mplex/mplex.nim index c7963ce..eae4bd7 100644 --- a/libp2p/muxers/mplex/mplex.nim +++ b/libp2p/muxers/mplex/mplex.nim @@ -55,7 +55,12 @@ method handle*(m: Mplex) {.async, gcsafe.} = trace "starting mplex main loop" try: while not m.connection.closed: - let (id, msgType, data) = (await m.connection.readMsg()).get() + let msg = await m.connection.readMsg() + if msg.isNone: + await sleepAsync(10.millis) + continue + + let (id, msgType, data) = msg.get() let initiator = bool(ord(msgType) and 1) var channel: LPChannel if MessageType(msgType) != MessageType.New: