From 94ec82c4a6cee9393b2ba692ef58b985f918fecb Mon Sep 17 00:00:00 2001 From: Elara Musayelyan Date: Tue, 3 Jan 2023 01:02:48 -0800 Subject: [PATCH] Start separate goroutine for multiplexed stream handling --- socket.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/socket.go b/socket.go index 0e8921c..dcfe7f4 100644 --- a/socket.go +++ b/socket.go @@ -94,14 +94,18 @@ func startSocket(ctx context.Context, dev *infinitime.Device) error { log.Fatal().Err(err).Msg("Error creating multiplexed session") } - for { - conn, err := sess.Accept() - if err != nil { - log.Fatal().Err(err).Msg("Error accepting stream") - } + go func() { + for { + conn, err := sess.Accept() + if errors.Is(err, io.EOF) { + break + } else if err != nil { + log.Fatal().Err(err).Msg("Error accepting stream") + } - go srv.ServeOne(ctx, conn) - } + go srv.ServeOne(ctx, conn) + } + }() } }()