diff --git a/wgengine/magicsock/magicsock.go b/wgengine/magicsock/magicsock.go index 8132e7f1b..8bc5147e2 100644 --- a/wgengine/magicsock/magicsock.go +++ b/wgengine/magicsock/magicsock.go @@ -1134,7 +1134,12 @@ func (c *Conn) runDerpReader(ctx context.Context, derpFakeAddr netaddr.IPPort, d } c.ReSTUN("derp-close") c.logf("magicsock: [%p] derp.Recv(derp-%d): %v", dc, regionID, err) - time.Sleep(250 * time.Millisecond) + select { + case <-ctx.Done(): + return + // Avoid excessive spinning. + case <-time.Sleep(250 * time.Millisecond): + } continue } switch m := msg.(type) {