Versions in this module Expand all Collapse all v12 v12.0.0 Aug 20, 2026 Changes in this version + const DefaultScopedLockTTL + const DefaultScopedMaxPollInterval + const DefaultScopedPollBackoff + const DefaultScopedPollInterval + var ErrEmptyKey = platformerrors.New("empty lock key") + var ErrInvalidTTL = platformerrors.New("invalid lock TTL") + var ErrLockNotAcquired = platformerrors.New("lock not acquired") + var ErrLockNotHeld = platformerrors.New("lock not held") + var ErrNilConfig = platformerrors.New("nil distributedlock config") + var ErrNilDatabaseClient = platformerrors.New("nil database client") + type Lock interface + Key func() string + Refresh func(ctx context.Context, ttl time.Duration) error + Release func(ctx context.Context) error + TTL func() time.Duration + type Locker interface + Acquire func(ctx context.Context, key string, ttl time.Duration) (Lock, error) + Close func() error + Ping func(ctx context.Context) error + type PollingScopedLocker struct + func NewScopedLocker(locker Locker, opts ...ScopedOption) (*PollingScopedLocker, error) + func (s *PollingScopedLocker) TryWithLock(ctx context.Context, key string, fn func(ctx context.Context) error) (bool, error) + func (s *PollingScopedLocker) WithLock(ctx context.Context, key string, fn func(ctx context.Context) error) error + type ScopedLocker interface + TryWithLock func(ctx context.Context, key string, fn func(ctx context.Context) error) (bool, error) + WithLock func(ctx context.Context, key string, fn func(ctx context.Context) error) error + type ScopedOption func(*PollingScopedLocker) + func WithLogger(logger logging.Logger) ScopedOption + func WithMetricsProvider(metricsProvider metrics.Provider) ScopedOption + func WithScopedClock(c clock.Clock) ScopedOption + func WithScopedLockTTL(ttl time.Duration) ScopedOption + func WithScopedPollBackoff(factor float64, maxInterval time.Duration) ScopedOption + func WithScopedPollInterval(interval time.Duration) ScopedOption + func WithScopedRand(fn retry.Rand) ScopedOption + func WithTracerProvider(tracerProvider tracing.Provider) ScopedOption Other modules containing this package github.com/primandproper/platform-go github.com/primandproper/platform-go/v10 github.com/primandproper/platform-go/v11 github.com/primandproper/platform-go/v2 github.com/primandproper/platform-go/v3 github.com/primandproper/platform-go/v4 github.com/primandproper/platform-go/v5 github.com/primandproper/platform-go/v6 github.com/primandproper/platform-go/v7 github.com/primandproper/platform-go/v8 github.com/primandproper/platform-go/v9