Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrClosed is the error resulting if the pool is closed via pool.Close(). ErrClosed = errors.New("pool is closed") )
Functions ¶
This section is empty.
Types ¶
type Closeable ¶
type Closeable interface { // Close closes the object Close() error }
Closeable interface describes a closable implementation. The underlying procedure of the Close() function is determined by its implementation
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() (Closeable, 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 ¶
NewChannelPool returns a new pool based on buffered channels with an initial capacity and maximum capacity. Factory is used when initial capacity is greater than zero to fill the pool. A zero initialCap doesn't fill the Pool until a new Get() is called. During a Get(), If there is no new connection available in the pool, a new connection will be created via the Factory() method.
type PoolConn ¶
type PoolConn struct { Closeable // contains filtered or unexported fields }
PoolConn is a wrapper around net.Conn to modify the the behavior of net.Conn's Close() method.
func (*PoolConn) MarkUnusable ¶
func (p *PoolConn) MarkUnusable()
MarkUnusable marks the connection not usable any more, to let the pool close it instead of returning it to pool.