type Runner … // NewRunner makes a runner for the given function(s). The function(s) should loop until // the channel is closed. func NewRunner(f ...func(stop chan struct{ … } // Start begins running. func (r *Runner) Start() { … } // Stop stops running. func (r *Runner) Stop() { … }