zhangzengfei
2023-08-15 60a0e6ef7d9b6237bf414ef0aee9a39d4f1892e9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Package pool implements a pool of net.Conn interfaces to manage and reuse them.
package nsqclient
 
import "errors"
 
var (
    // ErrClosed is the error resulting if the pool is closed via pool.Close().
    ErrClosed = errors.New("pool is closed")
)
 
// Pool interface describes a pool implementation. A pool should have maximum
// capacity. An ideal pool is threadsafe and easy to use.
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() (*PoolConn, 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
}