Skip to content

Commit 2620523

Browse files
committed
Fix encoder of messagepack to keep in pool
1 parent d0cdf96 commit 2620523

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

logger.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import (
66
"strings"
77
"sync"
88
"time"
9-
10-
"gopkg.in/vmihailenco/msgpack.v2"
119
)
1210

1311
var (
@@ -65,8 +63,7 @@ func (logger *Logger) PostWithTime(tag string, t time.Time, obj interface{}) err
6563
}
6664

6765
m := getMessage()
68-
enc := msgpack.NewEncoder(m.buf)
69-
if err := enc.Encode(record); err != nil {
66+
if err := m.enc.Encode(record); err != nil {
7067
return err
7168
}
7269
logger.buf.Add(m)

message.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ package fluent
33
import (
44
"bytes"
55
"sync"
6+
7+
"gopkg.in/vmihailenco/msgpack.v2"
68
)
79

810
type Message struct {
911
buf *bytes.Buffer
12+
enc *msgpack.Encoder
1013
}
1114

1215
var messagePool = sync.Pool{
@@ -26,7 +29,9 @@ func putMessage(message *Message) {
2629
}
2730

2831
func newMessage() *Message {
32+
buf := bytes.NewBuffer([]byte{})
2933
return &Message{
30-
buf: bytes.NewBuffer([]byte{}),
34+
buf: buf,
35+
enc: msgpack.NewEncoder(buf),
3136
}
3237
}

0 commit comments

Comments
 (0)