forked from quic-go/quic-go
put back packet buffers after processing a packet
This introduces a reference counter in the packet buffer, which will be used to process coalesced packets.
This commit is contained in:
@@ -9,13 +9,24 @@ import (
|
||||
|
||||
var _ = Describe("Buffer Pool", func() {
|
||||
It("returns buffers of cap", func() {
|
||||
buf := *getPacketBuffer()
|
||||
Expect(buf).To(HaveCap(int(protocol.MaxReceivePacketSize)))
|
||||
buf := getPacketBuffer()
|
||||
Expect(buf.Slice).To(HaveCap(int(protocol.MaxReceivePacketSize)))
|
||||
})
|
||||
|
||||
It("puts buffers back", func() {
|
||||
buf := getPacketBuffer()
|
||||
putPacketBuffer(buf)
|
||||
})
|
||||
|
||||
It("panics if wrong-sized buffers are passed", func() {
|
||||
Expect(func() {
|
||||
putPacketBuffer(&[]byte{0})
|
||||
}).To(Panic())
|
||||
buf := getPacketBuffer()
|
||||
buf.Slice = make([]byte, 10)
|
||||
Expect(func() { putPacketBuffer(buf) }).To(Panic())
|
||||
})
|
||||
|
||||
It("panics if it is put pack twice", func() {
|
||||
buf := getPacketBuffer()
|
||||
putPacketBuffer(buf)
|
||||
Expect(func() { putPacketBuffer(buf) }).To(Panic())
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user