code: func (qm *QuotaMonitor) processResourceChanges() bool {
  	item, quit := qm.resourceChanges.Get()
  	if quit {
  		return false
  	}
  	defer qm.resourceChanges.Done(item)
  	event, ok := item.(*event)
  	if !ok {
  		utilruntime.HandleError(fmt.Errorf("expect a *event, got %v", item))
  		return true
  	}
  	obj := event.obj
  	accessor, err := meta.Accessor(obj)
  	if err != nil {
  		utilruntime.HandleError(fmt.Errorf("cannot access obj: %v", err))
  		return true
  	}
  	klog.V(4).Infof("QuotaMonitor process object: %s, namespace %s, name %s, uid %s, event type %v", event.gvr.String(), accessor.GetNamespace(), accessor.GetName(), string(accessor.GetUID()), event.eventType)
  	qm.replenishmentFunc(event.gvr.GroupResource(), accessor.GetNamespace())
  	return true
  }
docs: // Dequeueing an event from resourceChanges to process