mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
Address comments: watch.Until return private error errWatchClosed on channel closed
This commit is contained in:
parent
51c7570ae1
commit
5a7929dc2d
@ -129,9 +129,6 @@ func Jitter(duration time.Duration, maxFactor float64) time.Duration {
|
|||||||
// ErrWaitTimeout is returned when the condition exited without success.
|
// ErrWaitTimeout is returned when the condition exited without success.
|
||||||
var ErrWaitTimeout = errors.New("timed out waiting for the condition")
|
var ErrWaitTimeout = errors.New("timed out waiting for the condition")
|
||||||
|
|
||||||
// ErrChannelClosed is returned when the watch channel is closed.
|
|
||||||
var ErrChannelClosed = errors.New("watch channel closed")
|
|
||||||
|
|
||||||
// ConditionFunc returns true if the condition is satisfied, or an error
|
// ConditionFunc returns true if the condition is satisfied, or an error
|
||||||
// if the loop should be aborted.
|
// if the loop should be aborted.
|
||||||
type ConditionFunc func() (done bool, err error)
|
type ConditionFunc func() (done bool, err error)
|
||||||
|
@ -17,6 +17,7 @@ limitations under the License.
|
|||||||
package watch
|
package watch
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/apimachinery/pkg/util/wait"
|
"k8s.io/apimachinery/pkg/util/wait"
|
||||||
@ -28,6 +29,9 @@ import (
|
|||||||
// from false to true).
|
// from false to true).
|
||||||
type ConditionFunc func(event Event) (bool, error)
|
type ConditionFunc func(event Event) (bool, error)
|
||||||
|
|
||||||
|
// errWatchClosed is returned when the watch channel is closed before timeout in Until.
|
||||||
|
var errWatchClosed = errors.New("watch closed before Until timeout")
|
||||||
|
|
||||||
// Until reads items from the watch until each provided condition succeeds, and then returns the last watch
|
// Until reads items from the watch until each provided condition succeeds, and then returns the last watch
|
||||||
// encountered. The first condition that returns an error terminates the watch (and the event is also returned).
|
// encountered. The first condition that returns an error terminates the watch (and the event is also returned).
|
||||||
// If no event has been received, the returned event will be nil.
|
// If no event has been received, the returned event will be nil.
|
||||||
@ -61,7 +65,7 @@ func Until(timeout time.Duration, watcher Interface, conditions ...ConditionFunc
|
|||||||
select {
|
select {
|
||||||
case event, ok := <-ch:
|
case event, ok := <-ch:
|
||||||
if !ok {
|
if !ok {
|
||||||
return lastEvent, wait.ErrChannelClosed
|
return lastEvent, errWatchClosed
|
||||||
}
|
}
|
||||||
lastEvent = &event
|
lastEvent = &event
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user