|
@@ -166,10 +166,14 @@ func (p *bufferPool) allocate() *Buffer {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (p *bufferPool) free(buffer *Buffer) {
|
|
func (p *bufferPool) free(buffer *Buffer) {
|
|
|
|
|
+ rawBuffer := buffer.head
|
|
|
|
|
+ if rawBuffer == nil {
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
select {
|
|
select {
|
|
|
- case p.chain <- buffer.head:
|
|
|
|
|
|
|
+ case p.chain <- rawBuffer:
|
|
|
default:
|
|
default:
|
|
|
- p.allocator.Put(buffer.head)
|
|
|
|
|
|
|
+ p.allocator.Put(rawBuffer)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|