gxpool

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2017 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package pool implements a pool of Object interfaces to manage and reuse them.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrClosed is the error resulting if the pool is closed via pool.Close().
	ErrEmpty  = errors.New("pool is empty")
	ErrClosed = errors.New("pool is closed")
)

Functions

This section is empty.

Types

type Object

type Object interface {
	Close() error
}

Object is Pool object

type Pool

type Pool interface {
	// Get returns a new connection from the pool. Closing the connections puts
	// it back to the Pool. Closing it when the pool is destroyed or full will
	// be counted as an error.
	Get() (Object, error)

	Put(Object) error

	// Close closes the pool and all its connections. After Close() the pool is
	// no longer usable.
	Close()

	// Len returns the current number of connections of the pool.
	Len() int
}

Pool interface describes a pool implementation. A pool should have maximum capacity. An ideal pool is threadsafe and easy to use.

func NewChannelPool

func NewChannelPool(poolLen int) (Pool, error)

NewChannelPool returns a new pool based on buffered channels maximum capacity. Pool doesn't fill the Pool until the (Pool)Put() is called. If there is no new Object available in the pool, (Pool)Get will return nil and u should create a new one by yourself.

Jump to

Keyboard shortcuts

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