Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CGroup ¶
type CGroup interface {
// Adds the context to this group.
// Returns true if the underlying context is not yet done and this context was added to the active set, even briefly.
Add(c context.Context) (ok bool)
// Starts or retrieves the prior context for this CGroup.
// This will be already canceled if no contexts were added.
Start() context.Context
// Wait ensures this group has started, and then blocks until the [context.Context] is completed, returning its cause if not the default [context.Canceled].
Wait() error
// Go runs the given method as part of this group.
// It will only start after Start() has been called with valid contexts.
// Any returned error will cancel the group's [context.Context] directly, rather than with any provided cause.
// Returns true if the method has a chance of running.
Go(func(c context.Context) error) bool
// Halt runs the given method when this group may be about to shut down.
// It is passed a channel which is closed if the group restarts.
// It will only run after a successful Start() and then a potential shutdown.
// Any returned error will cancel the group's [context.Context] directly, rather than with any provided cause.
// Returns true if the method has a chance of running.
Halt(func(c context.Context, resume <-chan struct{}) error) bool
}
func New ¶
func New() CGroup
New creates a new CGroup, which simply provides a context.Context while any passed context is active.
Click to show internal directories.
Click to hide internal directories.