code: func (w *DefaultWorker) Start() (<-chan *Task, <-chan error) {
  	w.smu.Lock()
  	defer w.smu.Unlock()
  
  	w.state = open
  	w.lifecycle.SetQueues(w.availableTasks, w.workingTasks)
  	w.janitorRunner = newJanitorRunner(w.pool, w.detector, w.janitor, w.availableTasks)
  
  	errs1 := w.janitorRunner.Start()
  	tasks, errs2 := w.lifecycle.Listen()
  
  	return tasks, concatErrs(errs1, errs2)
  }
docs: // Start signals the worker to begin receiving tasks from the main queue.