code: func (dsc *DaemonSetsController) processNextWorkItem() bool {
  	dsKey, quit := dsc.queue.Get()
  	if quit {
  		return false
  	}
  	defer dsc.queue.Done(dsKey)
  
  	err := dsc.syncHandler(dsKey.(string))
  	if err == nil {
  		dsc.queue.Forget(dsKey)
  		return true
  	}
  
  	utilruntime.HandleError(fmt.Errorf("%v failed with : %v", dsKey, err))
  	dsc.queue.AddRateLimited(dsKey)
  
  	return true
  }
docs: // processNextWorkItem deals with one key off the queue.  It returns false when it's time to quit.