code: func (e *quotaEvaluator) getWork() (string, []*admissionWaiter, bool) {
  	uncastNS, shutdown := e.queue.Get()
  	if shutdown {
  		return "", []*admissionWaiter{}, shutdown
  	}
  	ns := uncastNS.(string)
  
  	e.workLock.Lock()
  	defer e.workLock.Unlock()
  	// at this point, we know we have a coherent view of e.work.  It is entirely possible
  	// that our workqueue has another item requeued to it, but we'll pick it up early.  This ok
  	// because the next time will go into our dirty list
  
  	work := e.work[ns]
  	delete(e.work, ns)
  	delete(e.dirtyWork, ns)
  	e.inProgress.Insert(ns)
  	return ns, work, false
  }
docs: // getWork returns a namespace, a list of work items in that
  // namespace, and a shutdown boolean.  If not shutdown then the return
  // must eventually be followed by a call on completeWork for the
  // returned namespace (regardless of whether the work item list is
  // empty).