func (runner *Runner) killWorkerLocked(id string) {
	info := runner.workers[id]
	if info == nil {
		return
	}
	info.stopping = true
	info.start = nil
	if info.worker != nil {
		runner.params.Logger.Debugf("killing %q", id)
		info.worker.Kill()
		info.worker = nil
	} else {
		runner.params.Logger.Debugf("couldn't kill %q, not yet started", id)
	}
}
// killWorkerLocked is like killWorker except that it expects
// the runner.mu mutex to be held already.
killWorkerLocked is like killWorker except that it expects
the runner.mu mutex to be held already.
// killWorkerLocked is like killWorker except that it expects // the runner . mu mutex to be held already .
func (runner *Runner) killWorkerLocked(id string) {
	info := runner.workers[id]
	if info == nil {
		return
	}
	info.stopping = true
	info.start = nil
	if info.worker != nil {
		runner.params.Logger.Debugf("killing %q", id)
		info.worker.Kill()
		info.worker = nil
	} else {
		runner.params.Logger.Debugf("couldn't kill %q, not yet started", id)
	}
}
func ( runner * Runner ) killWorkerLocked ( id string ) { info := runner . workers [ id ] if info == nil { return } info . stopping = true info . start = nil if info . worker != nil { runner . params . Logger . Debugf ( " " , id ) info . worker . Kill ( ) info . worker = nil } else { runner . params . Logger . Debugf ( " " , id ) } }
killWorkerLocked is like killWorker except that it expects
the runner.mu mutex to be held already.
killWorkerLocked is like killWorker except that it expects the runner . mu mutex to be held already .