pool

package
v0.0.0-...-737401c Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2021 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package pool contains a simple threadpool implementation that accepts work in the form of `func() error` function. The intent is for it to support similar workloads to errgroup, but with a maximum number of concurrent worker threads.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Interface

type Interface interface {
	// Go queues a single unit of work for execution on this pool. All calls
	// to Go must be finished before Wait is called.
	Go(func() error)

	// Wait blocks until all work is complete, returning the first
	// error returned by any of the work.
	Wait() error
}

Interface defines an errgroup-compatible interface for interacting with our threadpool.

func New

func New(workers int) Interface

New creates a fresh worker pool with the specified size.

func NewWithCapacity

func NewWithCapacity(workers, capacity int) Interface

NewWithCapacity creates a fresh worker pool with the specified size.

func NewWithContext

func NewWithContext(ctx context.Context, workers, capacity int) (Interface, context.Context)

NewWithContext creates a pool that is driven by a cancelable context. Just like errgroup.Group on first error the context will be canceled as well.

Jump to

Keyboard shortcuts

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