code: func (qm *QuotaMonitor) Run(stopCh <-chan struct{}) {
  	klog.Infof("QuotaMonitor running")
  	defer klog.Infof("QuotaMonitor stopping")
  
  	// Set up the stop channel.
  	qm.monitorLock.Lock()
  	qm.stopCh = stopCh
  	qm.running = true
  	qm.monitorLock.Unlock()
  
  	// Start monitors and begin change processing until the stop channel is
  	// closed.
  	qm.StartMonitors()
  	wait.Until(qm.runProcessResourceChanges, 1*time.Second, stopCh)
  
  	// Stop any running monitors.
  	qm.monitorLock.Lock()
  	defer qm.monitorLock.Unlock()
  	monitors := qm.monitors
  	stopped := 0
  	for _, monitor := range monitors {
  		if monitor.stopCh != nil {
  			stopped++
  			close(monitor.stopCh)
  		}
  	}
  	klog.Infof("QuotaMonitor stopped %d of %d monitors", stopped, len(monitors))
  }
docs: // Run sets the stop channel and starts monitor execution until stopCh is
  // closed. Any running monitors will be stopped before Run returns.