Skip to content

Commit 5ed31e2

Browse files
committed
add func: SetBufferPool
1 parent 4cdceff commit 5ed31e2

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

conn_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ func (c *webSocketMocker) OnMessage(socket *Conn, message *Message) {
6060
}
6161

6262
func TestOthers(t *testing.T) {
63+
SetBufferPool(NewBufferPool(128, 256*1024))
6364
conn, _ := net.Pipe()
6465
upgrader := NewUpgrader(new(BuiltinEventHandler), nil)
6566
socket := &Conn{

init.go

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
package gws
22

3-
import "github.com/lxzan/gws/internal"
3+
import (
4+
"bytes"
5+
"github.com/lxzan/gws/internal"
6+
)
47

58
var (
6-
framePadding = frameHeader{} // 帧头填充物
7-
binaryPool = new(internal.BufferPool) // 内存池
8-
defaultLogger = new(stdLogger) // 默认日志工具
9+
framePadding = frameHeader{} // 帧头填充物
10+
binaryPool = NewBufferPool(128, 256*1024) // 内存池
11+
defaultLogger = new(stdLogger) // 默认日志工具
912
)
1013

11-
func init() {
12-
SetBufferPool(256 * 1024)
14+
type BufferPool interface {
15+
Get(n int) *bytes.Buffer
16+
Put(b *bytes.Buffer)
1317
}
1418

15-
// SetBufferPool set up the memory pool, any memory that exceeds maxSize will not be reclaimed.
16-
// 设置内存池, 超过maxSize将不会被回收.
17-
func SetBufferPool(maxSize uint32) {
18-
binaryPool = internal.NewBufferPool(128, maxSize)
19+
func NewBufferPool(minSize, maxSize uint32) BufferPool {
20+
return internal.NewBufferPool(minSize, maxSize)
1921
}
22+
23+
func SetBufferPool(p BufferPool) { binaryPool = p }

0 commit comments

Comments
 (0)