Versions in this module Expand all Collapse all v0 v0.2.0 May 2, 2026 Changes in this version type Option + func WithHandlerDefaultTimeout(d time.Duration) Option + type PanicError struct + Name string + Value any + func (e *PanicError) Error() string v0.1.0 May 2, 2026 Changes in this version + var ErrAlreadyRegistered = errors.New("shutdown: handler already registered with that name") + var ErrClosed = errors.New("shutdown: manager closed (shutdown in progress or completed)") + var ErrEmptyName = errors.New("shutdown: handler name must be non-empty") + type ActorHandle struct + func (h *ActorHandle) Done(err error) + type ActorOption func(*actorRegistration) + func WithActorPhase(p Phase) ActorOption + func WithActorTimeout(d time.Duration) ActorOption + type ErrorPolicy int + const ContinueOnError + const StopOnError + type HandlerFunc func(ctx context.Context) error + type InterruptFunc func(err error) + type Logger interface + Error func(msg string, fields ...any) + Info func(msg string, fields ...any) + Warn func(msg string, fields ...any) + func NoopLogger() Logger + func SlogLogger(l *slog.Logger) Logger + type Manager struct + func New(opts ...Option) *Manager + func (m *Manager) Listen(ctx context.Context) error + func (m *Manager) OnSignal(sig os.Signal, fn func(ctx context.Context, sig os.Signal)) + func (m *Manager) Register(name string, fn HandlerFunc, opts ...RegisterOption) error + func (m *Manager) RegisterActor(name string, interrupt InterruptFunc, opts ...ActorOption) (*ActorHandle, error) + func (m *Manager) Shutdown(ctx context.Context) error + func (m *Manager) Subscribe(o Observer) + type Observer struct + OnComplete func(totalDur time.Duration, err error) + OnHandlerEnd func(name string, phase Phase, dur time.Duration, err error) + OnHandlerStart func(name string, phase Phase) + OnPhaseEnd func(phase Phase, dur time.Duration, errs []error) + OnPhaseStart func(phase Phase, handlerCount int) + OnSignal func(sig os.Signal) + type Option func(*config) + func WithBudget(d time.Duration) Option + func WithErrorPolicy(p ErrorPolicy) Option + func WithExitOnComplete(successCode, failureCode int) Option + func WithForceOnSecondSignal(enabled bool, forceCode int) Option + func WithLogger(l Logger) Option + func WithSerial(phase Phase) Option + func WithSignals(sigs ...os.Signal) Option + func WithWatchdogGrace(d time.Duration) Option + type Phase int + const PhaseCloseClients + const PhaseDrainTraffic + const PhaseFlushLogs + const PhaseFlushQueues + const PhasePostShutdown + const PhasePreShutdown + const PhaseStopAccepting + func (p Phase) String() string + type RegisterOption func(*registration) + func WithPhase(p Phase) RegisterOption + func WithRequired() RegisterOption + func WithTimeout(d time.Duration) RegisterOption + type RunFunc func() error