code: func (nm *NamespaceController) worker() {
  	workFunc := func() bool {
  		key, quit := nm.queue.Get()
  		if quit {
  			return true
  		}
  		defer nm.queue.Done(key)
  
  		err := nm.syncNamespaceFromKey(key.(string))
  		if err == nil {
  			// no error, forget this entry and return
  			nm.queue.Forget(key)
  			return false
  		}
  
  		if estimate, ok := err.(*deletion.ResourcesRemainingError); ok {
  			t := estimate.Estimate/2 + 1
  			klog.V(4).Infof("Content remaining in namespace %s, waiting %d seconds", key, t)
  			nm.queue.AddAfter(key, time.Duration(t)*time.Second)
  		} else {
  			// rather than wait for a full resync, re-add the namespace to the queue to be processed
  			nm.queue.AddRateLimited(key)
  			utilruntime.HandleError(err)
  		}
  		return false
  	}
  
  	for {
  		quit := workFunc()
  
  		if quit {
  			return
  		}
  	}
  }
docs: // worker processes the queue of namespace objects.
  // Each namespace can be in the queue at most once.
  // The system ensures that no two workers can process
  // the same namespace at the same time.