aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/sirupsen/logrus/buffer_pool.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/sirupsen/logrus/buffer_pool.go')
-rw-r--r--vendor/github.com/sirupsen/logrus/buffer_pool.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/vendor/github.com/sirupsen/logrus/buffer_pool.go b/vendor/github.com/sirupsen/logrus/buffer_pool.go
new file mode 100644
index 0000000..c7787f7
--- /dev/null
+++ b/vendor/github.com/sirupsen/logrus/buffer_pool.go
@@ -0,0 +1,43 @@
1package logrus
2
3import (
4 "bytes"
5 "sync"
6)
7
8var (
9 bufferPool BufferPool
10)
11
12type BufferPool interface {
13 Put(*bytes.Buffer)
14 Get() *bytes.Buffer
15}
16
17type defaultPool struct {
18 pool *sync.Pool
19}
20
21func (p *defaultPool) Put(buf *bytes.Buffer) {
22 p.pool.Put(buf)
23}
24
25func (p *defaultPool) Get() *bytes.Buffer {
26 return p.pool.Get().(*bytes.Buffer)
27}
28
29// SetBufferPool allows to replace the default logrus buffer pool
30// to better meets the specific needs of an application.
31func SetBufferPool(bp BufferPool) {
32 bufferPool = bp
33}
34
35func init() {
36 SetBufferPool(&defaultPool{
37 pool: &sync.Pool{
38 New: func() interface{} {
39 return new(bytes.Buffer)
40 },
41 },
42 })
43}