Refactor bufpool methods
This commit is contained in:
@@ -15,7 +15,7 @@ func NewBufferPoolManager() *BufferPoolManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (bpm *BufferPoolManager) GetBuffer(size uint) *[]uint8 {
|
func (bpm *BufferPoolManager) Get(size uint) *[]uint8 {
|
||||||
bpm.mu.RLock()
|
bpm.mu.RLock()
|
||||||
pool, exists := bpm.pools[size]
|
pool, exists := bpm.pools[size]
|
||||||
bpm.mu.RUnlock()
|
bpm.mu.RUnlock()
|
||||||
@@ -39,7 +39,7 @@ func (bpm *BufferPoolManager) GetBuffer(size uint) *[]uint8 {
|
|||||||
return pool.Get().(*[]uint8)
|
return pool.Get().(*[]uint8)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (bpm *BufferPoolManager) PutBuffer(buf *[]uint8) {
|
func (bpm *BufferPoolManager) Put(buf *[]uint8) {
|
||||||
size := uint(len(*buf))
|
size := uint(len(*buf))
|
||||||
bpm.mu.RLock()
|
bpm.mu.RLock()
|
||||||
pool, exists := bpm.pools[size]
|
pool, exists := bpm.pools[size]
|
||||||
|
@@ -9,7 +9,7 @@ func TestRetrieveBufferOfRequestedSize(t *testing.T) {
|
|||||||
bpm := NewBufferPoolManager()
|
bpm := NewBufferPoolManager()
|
||||||
|
|
||||||
size := 1024
|
size := 1024
|
||||||
buffer := bpm.GetBuffer(uint(size))
|
buffer := bpm.Get(uint(size))
|
||||||
|
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
t.Fatalf("Expected buffer, got nil")
|
t.Fatalf("Expected buffer, got nil")
|
||||||
@@ -24,7 +24,7 @@ func TestRequestBufferSizeZero(t *testing.T) {
|
|||||||
bpm := NewBufferPoolManager()
|
bpm := NewBufferPoolManager()
|
||||||
|
|
||||||
size := 0
|
size := 0
|
||||||
buffer := bpm.GetBuffer(uint(size))
|
buffer := bpm.Get(uint(size))
|
||||||
|
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
t.Fatalf("Expected buffer, got nil")
|
t.Fatalf("Expected buffer, got nil")
|
||||||
@@ -46,7 +46,7 @@ func TestConcurrentAccessToBufferPool(t *testing.T) {
|
|||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
buffer := bpm.GetBuffer(uint(size))
|
buffer := bpm.Get(uint(size))
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
t.Errorf("Expected buffer, got nil")
|
t.Errorf("Expected buffer, got nil")
|
||||||
}
|
}
|
||||||
@@ -63,7 +63,7 @@ func TestGetBufferLockUnlock(t *testing.T) {
|
|||||||
bpm := NewBufferPoolManager()
|
bpm := NewBufferPoolManager()
|
||||||
|
|
||||||
size := 1024
|
size := 1024
|
||||||
buffer := bpm.GetBuffer(uint(size))
|
buffer := bpm.Get(uint(size))
|
||||||
|
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
t.Fatalf("Expected buffer, got nil")
|
t.Fatalf("Expected buffer, got nil")
|
||||||
@@ -78,7 +78,7 @@ func TestVerifyPoolCreationForNewSizes(t *testing.T) {
|
|||||||
bpm := NewBufferPoolManager()
|
bpm := NewBufferPoolManager()
|
||||||
|
|
||||||
size := 512
|
size := 512
|
||||||
buffer := bpm.GetBuffer(uint(size))
|
buffer := bpm.Get(uint(size))
|
||||||
|
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
t.Fatalf("Expected buffer, got nil")
|
t.Fatalf("Expected buffer, got nil")
|
||||||
@@ -93,7 +93,7 @@ func TestBufferPoolManagerGetBuffer(t *testing.T) {
|
|||||||
bpm := NewBufferPoolManager()
|
bpm := NewBufferPoolManager()
|
||||||
|
|
||||||
size := 1024
|
size := 1024
|
||||||
buffer := bpm.GetBuffer(uint(size))
|
buffer := bpm.Get(uint(size))
|
||||||
|
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
t.Fatalf("Expected buffer, got nil")
|
t.Fatalf("Expected buffer, got nil")
|
||||||
@@ -109,7 +109,7 @@ func TestGetBufferWithMultipleSizes(t *testing.T) {
|
|||||||
|
|
||||||
sizes := []int{512, 1024, 2048}
|
sizes := []int{512, 1024, 2048}
|
||||||
for _, size := range sizes {
|
for _, size := range sizes {
|
||||||
buffer := bpm.GetBuffer(uint(size))
|
buffer := bpm.Get(uint(size))
|
||||||
|
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
t.Fatalf("Expected buffer for size %d, got nil", size)
|
t.Fatalf("Expected buffer for size %d, got nil", size)
|
||||||
@@ -124,9 +124,9 @@ func TestGetBufferWithMultipleSizes(t *testing.T) {
|
|||||||
func TestGetBufferIsAlwaysZero(t *testing.T) {
|
func TestGetBufferIsAlwaysZero(t *testing.T) {
|
||||||
bpm := NewBufferPoolManager()
|
bpm := NewBufferPoolManager()
|
||||||
|
|
||||||
var size uint = 1024*64
|
var size uint = 1024 * 64
|
||||||
for i := 0; i < 1000; i++ {
|
for i := 0; i < 1000; i++ {
|
||||||
buffer := bpm.GetBuffer(size)
|
buffer := bpm.Get(size)
|
||||||
|
|
||||||
if buffer == nil {
|
if buffer == nil {
|
||||||
t.Fatalf("Expected buffer for size %d, got nil", size)
|
t.Fatalf("Expected buffer for size %d, got nil", size)
|
||||||
@@ -142,6 +142,6 @@ func TestGetBufferIsAlwaysZero(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bpm.PutBuffer(buffer)
|
bpm.Put(buffer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,7 @@ type (
|
|||||||
header PDU_HEADER
|
header PDU_HEADER
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// Hmm the header can be partially encoded
|
// Hmm the header can be partially encoded
|
||||||
// As in command_status can just be null
|
// As in command_status can just be null
|
||||||
// So not 0s, null, non existent, not encoded
|
// So not 0s, null, non existent, not encoded
|
||||||
@@ -56,9 +57,8 @@ type (
|
|||||||
// What are the other 0s?
|
// What are the other 0s?
|
||||||
// Don't know
|
// Don't know
|
||||||
|
|
||||||
|
|
||||||
func (p *PDU_HEADER) Encode() (*[]uint8, error) {
|
func (p *PDU_HEADER) Encode() (*[]uint8, error) {
|
||||||
buf := ByteBufferPool.GetBuffer(uint(p.Size()))
|
buf := ByteBufferPool.Get(uint(p.Size()))
|
||||||
err := p.EncodeInto(buf)
|
err := p.EncodeInto(buf)
|
||||||
return buf, err
|
return buf, err
|
||||||
}
|
}
|
||||||
|
@@ -61,7 +61,7 @@ type (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (p *SUBMIT_SM) Encode() (*[]byte, error) {
|
func (p *SUBMIT_SM) Encode() (*[]byte, error) {
|
||||||
buf := ByteBufferPool.GetBuffer(uint(p.Size()))
|
buf := ByteBufferPool.Get(uint(p.Size()))
|
||||||
err := p.EncodeInto(buf)
|
err := p.EncodeInto(buf)
|
||||||
return buf, err
|
return buf, err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user