Documentation

Overview

package gate provides a mechanism by which independent workers can wait for one another to finish a task, without introducing explicit dependencies between those workers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Manifold

func Manifold() dependency.Manifold

Manifold returns a dependency.Manifold that wraps a single channel, shared across all workers returned by the start func; it can be used to synchronize operations acrosss manifolds that lack direct dependency relationships.

The output func accepts an out pointer to either an Unlocker or a Waiter.

Types

type AlreadyUnlocked

type AlreadyUnlocked struct{}

AlreadyUnlocked is a Waiter that always reports its gate to be unlocked.

func (AlreadyUnlocked) Unlocked

func (AlreadyUnlocked) Unlocked() <-chan struct{}

Unlocked is part of the Waiter interface.

type Unlocker

type Unlocker interface {
	Unlock()
}

Unlocker is used to unlock a shared gate.

type Waiter

type Waiter interface {
	Unlocked() <-chan struct{}
}

Waiter is used to wait for a shared gate to be unlocked.