File tree Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Expand file tree Collapse file tree 1 file changed +10
-5
lines changed Original file line number Diff line number Diff line change @@ -2,18 +2,23 @@ package global
22
33import (
44 "bytes"
5- "sync"
5+
6+ "github.com/LagrangeDev/LagrangeGo/utils/binary"
7+ "github.com/RomiChan/syncx"
68)
79
8- var bufferPool = sync. Pool { New : func () interface {} { return & bytes.Buffer {} }}
10+ var bufferTable syncx. Map [ * bytes.Buffer , * binary. Builder ]
911
1012// NewBuffer 从池中获取新 bytes.Buffer
1113func NewBuffer () * bytes.Buffer {
12- return bufferPool .Get ().(* bytes.Buffer )
14+ builder := binary .NewBuilder ()
15+ bufferTable .Store (builder .Buffer (), builder )
16+ return builder .Buffer ()
1317}
1418
1519// PutBuffer 将 Buffer放入池中
1620func PutBuffer (buf * bytes.Buffer ) {
17- buf .Reset ()
18- bufferPool .Put (buf )
21+ if v , ok := bufferTable .LoadAndDelete (buf ); ok {
22+ binary .PutBuilder (v )
23+ }
1924}
You can’t perform that action at this time.
0 commit comments