func()

in cmd/checker/checker.go [211:242]


func (c *gerritChecker) processPendingChecks() (wait bool, err error) {
	pending, err := c.server.PendingChecksByScheme(checkerScheme)
	if err != nil {
		wait = true
		return
	}

	if len(pending) == 0 {
		wait = true
		log.Printf("no pending checks")
		return
	}

	// Shuffle so we don't always report the first error if there
	// is a problem.
	rand.Shuffle(len(pending),
		func(i, j int) {
			pending[i], pending[j] = pending[j], pending[i]
		})

	var aggregateErr error
	for _, pc := range pending {
		if err := c.executeCheck(pc); err != nil && aggregateErr == nil {
			// just register the first error.
			aggregateErr = err
		} else if err == nil {
			// we can try again until we stop making progress.
			wait = false
		}
	}
	return wait, aggregateErr
}