runner

package
v0.9.20 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 14, 2025 License: MIT Imports: 7 Imported by: 16

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Create = newBase // allow to override

Functions

func Init

func Init(r Runner) (err error)

Init a runner and init its children in order.

func Start

func Start(r Runner)

Start a runner and wait it done.

func StartBG

func StartBG(r Runner)

StartBG start a runner and its children in the background.

func Stop

func Stop(r Runner)

Stop a runner, in most scenario, Stop is a notification action, used to notify the Runner to stop.

func StopAndWait added in v0.9.17

func StopAndWait(r Runner)

StopAndWait notify Runner to stop, and notify the Runner's children in reverse order to stop and wait for the children to finish.

Types

type Runner

type Runner interface {
	kvs.NoErrKVS
	log.Logger

	Init() error
	Start() error
	Stop() error

	Name() string
	SetName(string)
	Ctx() context.Context
	SetCtx(context.Context)
	Cancel()

	Inherit(Runner)

	Started() <-chan struct{}
	Stopping() <-chan struct{}
	StopDone() <-chan struct{}
	Done() <-chan struct{}

	GetChild(string) Runner
	Children() []Runner
	AppendRunner(Runner) bool
	WaitChildrenDone()
	SetParent(Runner)
	Parent() Runner
	OnChildDone(Runner) error

	AppendError(err ...error)
	Err() error
	SelfErr() error
	ChildrenErr() error

	WithLoggerFrom(r Runner, kvs ...any)
	// contains filtered or unexported methods
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL