From 574126d0eb1f82db35daf11019b387dd4b63909b Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Tue, 27 Nov 2018 14:11:09 +0700 Subject: [PATCH] handle Retry packets in a separate Go routine --- client.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/client.go b/client.go index 4736fcc3b..e35bbdb47 100644 --- a/client.go +++ b/client.go @@ -295,9 +295,7 @@ func (c *client) handlePacket(p *receivedPacket) { } if p.hdr.Type == protocol.PacketTypeRetry { - c.mutex.Lock() - c.handleRetryPacket(p.hdr) - c.mutex.Unlock() + go c.handleRetryPacket(p.hdr) return } @@ -347,6 +345,9 @@ func (c *client) handleVersionNegotiationPacket(hdr *wire.Header) { } func (c *client) handleRetryPacket(hdr *wire.Header) { + c.mutex.Lock() + defer c.mutex.Unlock() + c.logger.Debugf("<- Received Retry") (&wire.ExtendedHeader{Header: *hdr}).Log(c.logger) if !hdr.OrigDestConnectionID.Equal(c.destConnID) {