mirror of
https://github.com/hanzoai/traces.git
synced 2026-10-30 18:20:41 +00:00
* Update go-kit/kit to 0.12.0 to fix spurious debug logs This version of go-kit/kit/log is just a pass-through to go-kit/log. Also updates a number of dependencies, including the following: * github.com/aws/aws-sdk-go from v1.38.68 to v1.40.45 * github.com/go-kit/log from v0.1.0 to v0.2.0 * github.com/json-iterator/go from v1.1.11 to v1.1.12 * github.com/hashicorp/go-hclog from v0.14.0 to v0.16.2 * github.com/klauspost/compress from v1.13.5 to v1.13.6 * golang.org/x/net from ad29c8ab022f to 978cfadd31cf None of these changes looks material to Tempo. After update, ran `go mod tidy -go=1.16 && go mod tidy -go=1.17`. This makes `make vendor-check` pass; I don't think it actually changes what gets linked. * Replace calls to go-kit/kit/log with go-kit/log They are identical - the first is a pass-through to the latter - but the linter generates errors due to go-kit/kit/log being marked deprecated. * Update CHANGELOG * go mod tidy Co-authored-by: Martin Disibio <[email protected]>
63 lines
1.1 KiB
Go
63 lines
1.1 KiB
Go
package backoff
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
)
|
|
|
|
// BackOffContext is a backoff policy that stops retrying after the context
|
|
// is canceled.
|
|
type BackOffContext interface { // nolint: golint
|
|
BackOff
|
|
Context() context.Context
|
|
}
|
|
|
|
type backOffContext struct {
|
|
BackOff
|
|
ctx context.Context
|
|
}
|
|
|
|
// WithContext returns a BackOffContext with context ctx
|
|
//
|
|
// ctx must not be nil
|
|
func WithContext(b BackOff, ctx context.Context) BackOffContext { // nolint: golint
|
|
if ctx == nil {
|
|
panic("nil context")
|
|
}
|
|
|
|
if b, ok := b.(*backOffContext); ok {
|
|
return &backOffContext{
|
|
BackOff: b.BackOff,
|
|
ctx: ctx,
|
|
}
|
|
}
|
|
|
|
return &backOffContext{
|
|
BackOff: b,
|
|
ctx: ctx,
|
|
}
|
|
}
|
|
|
|
func getContext(b BackOff) context.Context {
|
|
if cb, ok := b.(BackOffContext); ok {
|
|
return cb.Context()
|
|
}
|
|
if tb, ok := b.(*backOffTries); ok {
|
|
return getContext(tb.delegate)
|
|
}
|
|
return context.Background()
|
|
}
|
|
|
|
func (b *backOffContext) Context() context.Context {
|
|
return b.ctx
|
|
}
|
|
|
|
func (b *backOffContext) NextBackOff() time.Duration {
|
|
select {
|
|
case <-b.ctx.Done():
|
|
return Stop
|
|
default:
|
|
return b.BackOff.NextBackOff()
|
|
}
|
|
}
|