code: func (p *Pool) Stop() {
  	p.lock.Lock()
  	defer p.lock.Unlock()
  	p.cancel()
  	for _, routine := range p.routines {
  		routine.stop <- true
  	}
  	p.waitGroup.Wait()
  	for _, routine := range p.routines {
  		close(routine.stop)
  	}
  }
docs: // Stop stops all started routines, waiting for their termination