mirror of
https://git.vectorsigma.ru/public/k3s.git
synced 2026-08-06 20:59:54 +00:00
* Update Kubernetes to v1.21.0 * Update to golang v1.16.2 * Update dependent modules to track with upstream * Switch to upstream flannel * Track changes to upstream cloud-controller-manager and FeatureGates Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
24 lines
535 B
Go
24 lines
535 B
Go
// Copyright 2020 The Kubernetes Authors.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package utils
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
// TimedCall runs fn, failing if it doesn't complete in the given duration.
|
|
// The description is used in the timeout error message.
|
|
func TimedCall(description string, d time.Duration, fn func() error) error {
|
|
done := make(chan error)
|
|
timer := time.NewTimer(d)
|
|
defer timer.Stop()
|
|
go func() { done <- fn() }()
|
|
select {
|
|
case err := <-done:
|
|
return err
|
|
case <-timer.C:
|
|
return NewErrTimeOut(d, description)
|
|
}
|
|
}
|