FILE / ScuroNeko/mtg

antireplay/init.go

Исходный файл и его история в репозитории.
FILE b491e03504092c4d63c44d45c30c374527115782
Files
mtg/antireplay/init.go
T

34 lines
513 B
Go

package antireplay
import (
"math"
"sync"
"github.com/9seconds/mtg/config"
"github.com/dgraph-io/ristretto"
)
var (
Cache cache
initOnce sync.Once
)
func Init() {
initOnce.Do(func() {
cost := float64(config.C.AntiReplayMaxSize) / 32.0
cost = math.Ceil(cost)
c, err := ristretto.NewCache(&ristretto.Config{
NumCounters: int64(cost) * 10,
MaxCost: config.C.AntiReplayMaxSize,
BufferItems: 64,
Metrics: false,
})
if err != nil {
panic(err)
}
Cache.data = c
})
}