code: func (p *Plugin) periodicProbing(ctx context.Context) {
  	p.wg.Add(1)
  	defer p.wg.Done()
  
  	for {
  		select {
  		case <-time.After(PeriodicProbingTimeout):
  			for pluginName, probe := range p.pluginProbe {
  				state, lastErr := probe()
  				p.ReportStateChange(infra.PluginName(pluginName), state, lastErr)
  				// just check in-between probes if the plugin is closing
  				select {
  				case <-ctx.Done():
  					return
  				default:
  					continue
  				}
  			}
  
  		case <-ctx.Done():
  			return
  		}
  	}
  }
docs: // periodicProbing does periodic status probing for all plugins
  // that have registered probe functions.