[#8] limiting: Make SemaphoreLimiter.Acquire() zero-alloc

Previously, `Acquire` on exising key did 1 allocation because
`func() { sem.Release() }` was a closure capturing different variables.

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
Evgenii Stratonikov 2025-02-26 13:18:40 +03:00
parent 356851eed3
commit cafa869fea
Signed by: fyrchik
SSH key fingerprint: SHA256:m/TTwCzjnRkXgnzEx9X92ccxy1CcVeinOgDb3NPWWmg

View file

@ -69,7 +69,7 @@ func (lr *SemaphoreLimiter) Acquire(key string) (ReleaseFunc, bool) {
}
if ok := sem.Acquire(); ok {
return func() { sem.Release() }, true
return sem.Release, true
}
return nil, false
}