mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-25 21:07:18 +00:00
d17996f8b0
* Update V3 from V4 * Fix build v3 -> v4 * Update ssz * Update beacon_chain.pb.go * Fix formatter import * Update update-mockgen.sh comment to v4 * Fix conflicts. Pass build and tests * Fix test
30 lines
795 B
Go
30 lines
795 B
Go
package cache
|
|
|
|
import (
|
|
"github.com/prysmaticlabs/prysm/v4/config/params"
|
|
"k8s.io/client-go/tools/cache"
|
|
)
|
|
|
|
var (
|
|
// maxCacheSize is 4x of the epoch length for additional cache padding.
|
|
// Requests should be only accessing committees within defined epoch length.
|
|
maxCacheSize = uint64(4 * params.BeaconConfig().SlotsPerEpoch)
|
|
)
|
|
|
|
// trim the FIFO queue to the maxSize.
|
|
func trim(queue *cache.FIFO, maxSize uint64) {
|
|
for s := uint64(len(queue.ListKeys())); s > maxSize; s-- {
|
|
_, err := queue.Pop(popProcessNoopFunc)
|
|
if err != nil {
|
|
// popProcessNoopFunc never returns an error, but we handle this anyway to make linter
|
|
// happy.
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
// popProcessNoopFunc is a no-op function that never returns an error.
|
|
func popProcessNoopFunc(_ interface{}) error {
|
|
return nil
|
|
}
|