Clive, 2nd ed. User's manual. Section 2
SYNOPSYS

import "clive/work"

var Debug bool
func NewPool(n int) *Pool
type Pool struct { ... }
    func NewPool(n int) *Pool

DESCRIPTION

A pool of worker processes.

CONSTANTS

TYPES

type Pool struct {
	// contains filtered or unexported fields
}
    A pool of work to do.

func NewPool(n int) *Pool
    create a pool of workers with up to n concurrent works.

func (p *Pool) Call(donec chan bool, fn func()) chan bool
    Run fn in a worker from the pool. If there is no worker available, run the
    function in the caller process. Either way, return a chan that is sent-to
    when the call completes. The channel is the one passed or a new one if it is
    nil.

func (p *Pool) Close()
    Terminate the pool. Running functions continue to run but no further work is
    accepted causing a panic instead.

func (p *Pool) Go(donec chan bool, fn func()) chan bool
    Run fn in a worker from the pool. If there is no worker available, await
    until there is one Either way, return a chan that is sent-to when the call
    completes. The channel is the one passed or a new one if it is nil.

func (p *Pool) Wait()
    Wait until all workers are done, closing if the pool is not yet closed.

FUNCTIONS

VARIABLES

var (
	Debug bool
)

User's manual, 2nd ed. Section 2