Documentation
¶
Overview ¶
Package pool provides a worker pool.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Job ¶
type Job struct { F func(...interface{}) interface{} Args []interface{} Result interface{} Err error // contains filtered or unexported fields }
Job holds all the data related to a worker's instance.
type Pool ¶
type Pool struct {
// contains filtered or unexported fields
}
Pool is the main data structure.
func (*Pool) Add ¶
func (pool *Pool) Add(f func(...interface{}) interface{}, args ...interface{})
Add creates a Job from the given function and args and adds it to the Pool.
func (*Pool) Run ¶
func (pool *Pool) Run()
Run starts the Pool by launching the workers. It's OK to start an empty Pool. The jobs will be fed to the workers as soon as they become available.
func (*Pool) Stop ¶
func (pool *Pool) Stop()
Stop will signal the workers to exit and wait for them to actually do that. It also releases any other resources (e.g.: it stops the supervisor goroutine) so call this method when you're done with the Pool instance to allow the GC to do its job.
func (*Pool) WaitForJob ¶
WaitForJob blocks until a completed job is available and returns it. If there are no jobs running, it returns nil.