code: func (p *Pool) Wait() error {
  	// The shared waitgroup will only return after each worker is finished
  	p.wg.Wait()
  	// Remove the pool id from the set of active pools, only after we know
  	// each worker finished executing.
  	if err := p.removeFromPoolSet(); err != nil {
  		return err
  	}
  	return nil
  }
docs: // Wait will return when all workers are done executing their jobs.
  // Wait can only possibly return after you have called Close. To prevent
  // errors due to partially-executed jobs, any go program which starts a
  // worker pool should call Wait (and Close before that if needed) before
  // exiting.