Files
mautrix-telegram/pkg/gotd/tdsync/backoff.go
T
2025-06-27 20:03:37 -07:00

32 lines
495 B
Go

package tdsync
import (
"sync"
"time"
"github.com/cenkalti/backoff/v4"
)
type syncBackoff struct {
b backoff.BackOff
mux sync.Mutex
}
func (s *syncBackoff) NextBackOff() time.Duration {
s.mux.Lock()
dur := s.b.NextBackOff()
s.mux.Unlock()
return dur
}
func (s *syncBackoff) Reset() {
s.mux.Lock()
s.b.Reset()
s.mux.Unlock()
}
// SyncBackoff decorates backoff.BackOff to be thread-safe.
func SyncBackoff(from backoff.BackOff) backoff.BackOff {
return &syncBackoff{b: from}
}