Documentation
¶
Overview ¶
Package grpool implements a goroutine reusable pool.
Index ¶
- func Add(ctx context.Context, f Func) error
- func AddWithRecover(ctx context.Context, userFunc Func, recoverFunc RecoverFunc) error
- func IsPaused() bool
- func Jobs() int
- func Pause() bool
- func Resume() bool
- func Size() int
- type Func
- type LimitChangerFunc
- type Pool
- func (p *Pool) Add(ctx context.Context, f Func) error
- func (p *Pool) AddWithRecover(ctx context.Context, userFunc Func, recoverFunc RecoverFunc) error
- func (p *Pool) Cap() int
- func (p *Pool) ClearJobs() (count int)
- func (p *Pool) Close()
- func (p *Pool) IsClosed() bool
- func (p *Pool) IsPaused() bool
- func (p *Pool) Jobs() int
- func (p *Pool) Pause() bool
- func (p *Pool) Resume() bool
- func (p *Pool) SetCap(cap int) int
- func (p *Pool) Size() int
- type PoolOption
- type RecoverFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Add ¶
Add pushes a new job to the default goroutine pool. The job will be executed asynchronously.
func AddWithRecover ¶
func AddWithRecover(ctx context.Context, userFunc Func, recoverFunc RecoverFunc) error
AddWithRecover pushes a new job to the default pool with specified recover function.
The optional `recoverFunc` is called when any panic during executing of `userFunc`. If `recoverFunc` is not passed or given nil, it ignores the panic from `userFunc`. The job will be executed asynchronously.
Types ¶
type LimitChangerFunc ¶ added in v2.10.3
LimitChangerFunc updates the pool's goroutine limit dynamically. It should update value and return true if the limit was changed.
type Pool ¶
type Pool struct {
// contains filtered or unexported fields
}
Pool manages the goroutines using pool.
func New ¶
New creates and returns a new goroutine pool object. The parameter `limit` is used to limit the max goroutine count, which is not limited in default.
func NewWithOption ¶ added in v2.10.3
func NewWithOption(option ...PoolOption) *Pool
NewWithOption creates and returns a new goroutine pool object. The parameter `option` is used to limit the max goroutine count or set limit changer, which is not limited in default.
func (*Pool) AddWithRecover ¶
AddWithRecover pushes a new job to the pool with specified recover function.
The optional `recoverFunc` is called when any panic during executing of `userFunc`. If `recoverFunc` is not passed or given nil, it ignores the panic from `userFunc`. The job will be executed asynchronously.
func (*Pool) Cap ¶
Cap returns the capacity of the pool. This capacity is defined when pool is created. It returns -1 if there's no limit.
func (*Pool) ClearJobs ¶ added in v2.10.3
ClearJobs clears all queued jobs and returns how many were cleared.
func (*Pool) Close ¶
func (p *Pool) Close()
Close closes the goroutine pool, which makes all goroutines exit.
func (*Pool) Jobs ¶
Jobs returns current job count of the pool. Note that, it does not return worker/goroutine count but the job/task count.
func (*Pool) Pause ¶ added in v2.10.3
Pause pauses pool work. Jobs are kept in the queue and will be processed when the pool resumes.
type PoolOption ¶ added in v2.10.3
type PoolOption struct {
Limit int // Max goroutine count limit.
LimitChanger LimitChangerFunc // Function used to change max goroutine count limit. Let it nil to disable.
}
PoolOption is used to pass options for creating a Pool.
type RecoverFunc ¶ added in v2.1.0
RecoverFunc is the pool runtime panic recover function which contains context parameter.