pool

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2019 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrPoolExhausted = errors.New("pool exhausted")

ErrPoolExhausted is returned if a pool cannot provide the request bytes.

Functions

This section is empty.

Types

type BytesPool

type BytesPool struct {
	// contains filtered or unexported fields
}

BytesPool is a bucketed pool for variably sized byte slices. It can be configured to not allow more than a maximum number of bytes being used at a given time. Every byte slice obtained from the pool must be returned.

func NewBytesPool

func NewBytesPool(minSize, maxSize int, factor float64, maxTotal uint64) (*BytesPool, error)

NewBytesPool returns a new BytesPool with size buckets for minSize to maxSize increasing by the given factor and maximum number of used bytes. No more than maxTotal bytes can be used at any given time unless maxTotal is set to 0.

func (*BytesPool) Get

func (p *BytesPool) Get(sz int) ([]byte, error)

Get returns a new byte slices that fits the given size.

func (*BytesPool) Put

func (p *BytesPool) Put(b []byte)

Put returns a byte slice to the right bucket in the pool.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL