From: Matt Joiner Date: Wed, 6 Aug 2025 10:34:40 +0000 (+1000) Subject: Probably fix a nasty buffer size performance issue with rate limited readers X-Git-Tag: v1.59.0~2^2~40 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=2a6ba97d833deb6862220883fea78de6939630d3;p=btrtrc.git Probably fix a nasty buffer size performance issue with rate limited readers --- diff --git a/ratelimitreader.go b/ratelimitreader.go index 1bd743ed..39df9326 100644 --- a/ratelimitreader.go +++ b/ratelimitreader.go @@ -24,7 +24,12 @@ type rateLimitedReader struct { r io.Reader } -func (me *rateLimitedReader) Read(b []byte) (n int, err error) { +func (me rateLimitedReader) Read(b []byte) (n int, err error) { + // Avoid truncating the read if everything is permitted anyway. + if me.l.Limit() == rate.Inf { + return me.r.Read(b) + } + // If the burst is zero, let the limiter method handle errors. if me.l.Burst() != 0 { b = b[:min(len(b), me.l.Burst())] }