File: objectpools.go

package info (click to toggle)
golang-github-bep-logg 0.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 256 kB
  • sloc: makefile: 9
file content (25 lines) | stat: -rw-r--r-- 429 bytes parent folder | download
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 logg

import "sync"

var objectPools = &objectPoolsHolder{
	entryPool: &sync.Pool{
		New: func() any {
			return &Entry{}
		},
	},
}

type objectPoolsHolder struct {
	// This is only used for the event copy passed to HandleLog.
	entryPool *sync.Pool
}

func (h *objectPoolsHolder) GetEntry() *Entry {
	return h.entryPool.Get().(*Entry)
}

func (h *objectPoolsHolder) PutEntry(e *Entry) {
	e.reset()
	h.entryPool.Put(e)
}