pool

package
v0.0.0-...-60fd096 Latest Latest
Warning

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

Go to latest
Published: Jan 20, 2014 License: Apache-2.0 Imports: 5 Imported by: 0

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 New

func New(workers int) (pool *Pool)

New creates a new Pool.

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) Results

func (pool *Pool) Results() (res []*Job)

Results retrieves the completed jobs.

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) Status

func (pool *Pool) Status() stats

Status returns a "stats" instance.

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) Wait

func (pool *Pool) Wait()

Wait blocks until all the jobs in the Pool are done.

func (*Pool) WaitForJob

func (pool *Pool) WaitForJob() *Job

WaitForJob blocks until a completed job is available and returns it. If there are no jobs running, it returns nil.

Jump to

Keyboard shortcuts

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