annotate vendor/github.com/sirupsen/logrus/buffer_pool.go @ 66:787b5ee0289d draft

Use vendored modules Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author yakumo.izuru
date Sun, 23 Jul 2023 13:18:53 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
1 package logrus
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
2
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
3 import (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
4 "bytes"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
5 "sync"
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
6 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
7
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
8 var (
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
9 bufferPool BufferPool
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
10 )
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
11
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
12 type BufferPool interface {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
13 Put(*bytes.Buffer)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
14 Get() *bytes.Buffer
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
15 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
16
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
17 type defaultPool struct {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
18 pool *sync.Pool
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
19 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
20
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
21 func (p *defaultPool) Put(buf *bytes.Buffer) {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
22 p.pool.Put(buf)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
23 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
24
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
25 func (p *defaultPool) Get() *bytes.Buffer {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
26 return p.pool.Get().(*bytes.Buffer)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
27 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
28
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
29 // SetBufferPool allows to replace the default logrus buffer pool
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
30 // to better meets the specific needs of an application.
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
31 func SetBufferPool(bp BufferPool) {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
32 bufferPool = bp
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
33 }
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
34
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
35 func init() {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
36 SetBufferPool(&defaultPool{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
37 pool: &sync.Pool{
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
38 New: func() interface{} {
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
39 return new(bytes.Buffer)
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
40 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
41 },
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
42 })
787b5ee0289d Use vendored modules
yakumo.izuru
parents:
diff changeset
43 }