summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-cache/v3/result/pool.go
blob: 6f194be5a40b147eb6394fa6185b73d47e1aa34c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package result

import "sync"

// resultPool is a global pool for result
// objects, regardless of cache type.
var resultPool sync.Pool

// getEntry fetches a result from pool, or allocates new.
func getResult() *result {
	v := resultPool.Get()
	if v == nil {
		return new(result)
	}
	return v.(*result)
}

// putResult replaces a result in the pool.
func putResult(r *result) {
	r.PKey = 0
	r.Keys = nil
	r.Value = nil
	r.Error = nil
	resultPool.Put(r)
}