code: func (q *Type) ShutDown() {
  	q.cond.L.Lock()
  	defer q.cond.L.Unlock()
  	q.shuttingDown = true
  	q.cond.Broadcast()
  }
docs: // ShutDown will cause q to ignore all new items added to it. As soon as the
  // worker goroutines have drained the existing items in the queue, they will be
  // instructed to exit.