Merge pull request #31445 from pmorie/goroutinemap-godoc

Automatic merge from submit-queue

Improve godoc for goroutinemap

Improves the godoc of goroutinemap; found while preparing to use this type in another PR.

@saad-ali
pull/6/head
Kubernetes Submit Queue 2016-08-25 14:07:08 -07:00 committed by GitHub
commit 75fba4c953
1 changed files with 9 additions and 3 deletions

View File

@ -43,7 +43,10 @@ const (
maxDurationBeforeRetry = 2 * time.Minute
)
// GoRoutineMap defines the supported set of operations.
// GoRoutineMap defines a type that can run named goroutines and track their
// state. It prevents the creation of multiple goroutines with the same name
// and may prevent recreation of a goroutine until after the a backoff time
// has elapsed after the last goroutine with that name finished.
type GoRoutineMap interface {
// Run adds operation name to the list of running operations and spawns a
// new go routine to execute the operation.
@ -59,8 +62,8 @@ type GoRoutineMap interface {
// and evaluate results after that.
Wait()
// IsOperationPending returns true if the operation is pending, otherwise
// returns false
// IsOperationPending returns true if the operation is pending (currently
// running), otherwise returns false.
IsOperationPending(operationName string) bool
}
@ -82,6 +85,7 @@ type goRoutineMap struct {
lock sync.RWMutex
}
// operation holds the state of a single goroutine.
type operation struct {
operationPending bool
expBackoff exponentialbackoff.ExponentialBackoff
@ -122,6 +126,8 @@ func (grm *goRoutineMap) Run(
return nil
}
// operationComplete handles the completion of a goroutine run in the
// goRoutineMap.
func (grm *goRoutineMap) operationComplete(
operationName string, err *error) {
// Defer operations are executed in Last-In is First-Out order. In this case