# README
run
This package contains a universal mechanism to manage goroutine lifecycles. It implements an actor-runner with deterministic teardown. It uses the https://github.com/oklog/run/ package as its basis and enhances it with configuration registration and validation as well as pre-run phase logic.
See godoc for information how to use
run.Group
# Packages
No description provided by the author
# Functions
NewFlagSet returns a new FlagSet for usage in Config objects.
NewLifecycle returns a new application lifecycle tracker.
NewPreRunner takes a name and a standalone pre runner compatible function and turns them into a Group compatible PreRunner, ready for registration.
# Constants
BinaryName holds the template variable that will be replaced by the Group name in HelpText strings.
ErrBailEarlyRequest is returned when a call to RunConfig was successful but signals that the application should exit in success immediately.
ErrRequestedShutdown can be used by Service implementations to gracefully request a shutdown of the application.
# Interfaces
Config interface should be implemented by Group Unit objects that manage their own configuration through the use of flags.
Initializer is an extension interface that Units can implement if they need to have certain properties initialized after creation but before any of the other lifecycle phases such as Config, PreRunner and/or Serve are run.
Lifecycle tracks application lifecycle.
Namer is an extension interface that Units can implement if they need to know or want to use the Group.Name.
PreRunner interface should be implemented by Group Unit objects that need a pre run stage before starting the Group Services.
Service interface should be implemented by Group Unit objects that need to run a blocking service until an error occurs or a shutdown request is made.
ServiceContext interface should be implemented by Group Unit objects that need to run a blocking service until an error occurs or the by Group provided context.Context sends a cancellation signal.
Unit is the default interface an object needs to implement for it to be able to register with a Group.
# Type aliases
Error allows for creating constant errors instead of sentinel ones.