package shutdown

import "github.com/containerd/containerd/pkg/shutdown"

Index

Variables

var ErrShutdown = errors.New("shutdown")

ErrShutdown is the error condition when a context has been fully shutdown

Types

type Service

type Service interface {
	// Shutdown initiates shutdown
	Shutdown()
	// RegisterCallback registers functions to be called on shutdown and before
	// the shutdown channel is closed. A callback error will propagate to the
	// context error
	RegisterCallback(func(context.Context) error)
	// Done returns a channel that's closed when all shutdown callbacks are invoked.
	Done() <-chan struct{}
	// Err returns nil if Done is not yet closed.
	// If Done is closed, Err returns first failed callback error or ErrShutdown.
	Err() error
}

Service is used to facilitate shutdown by through callback registration and shutdown initiation

func WithShutdown

func WithShutdown(ctx context.Context) (context.Context, Service)

WithShutdown returns a context which is similar to a cancel context, but with callbacks which can propagate to the context error. Unlike a cancel context, the shutdown context cannot be canceled from the parent context. However, future child contexes will be canceled upon shutdown.

Source Files

shutdown.go

Version
v1.7.0-rc.1
Published
Mar 2, 2023
Platform
js/wasm
Imports
5 packages
Last checked
1 minute ago

Tools for package owners.