locker

package
v0.9.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 23, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrLockAlreadyExpired  = fmt.Errorf("lock already expired")
	ErrLockTaken           = fmt.Errorf("lock already taken")
	ErrLockNotHeld         = fmt.Errorf("lock not held")
	ErrLockNotLocked       = fmt.Errorf("lock not locked")
	ErrLockFailedToAcquire = fmt.Errorf("failed to acquire lock")
	ErrLockNotOk           = fmt.Errorf("lock not ok") // For unknown error
)

Functions

func SetDefaultRWLockerGenerator added in v0.8.0

func SetDefaultRWLockerGenerator(lockerGenerator SyncRWLockerGenerator)

func SetDefaultSyncLockerGenerator added in v0.8.0

func SetDefaultSyncLockerGenerator(lockerGenerator SyncLockerGenerator)

Types

type MemoryLockerGenerator

type MemoryLockerGenerator struct {
	// contains filtered or unexported fields
}

func NewMemoryLockerGenerator

func NewMemoryLockerGenerator() *MemoryLockerGenerator

func (*MemoryLockerGenerator) CreateSyncLocker

func (g *MemoryLockerGenerator) CreateSyncLocker(name string) (SyncLocker, error)

type MemoryRWLockerGenerator

type MemoryRWLockerGenerator struct {
	// contains filtered or unexported fields
}

func NewMemoryRWLockerGenerator

func NewMemoryRWLockerGenerator() *MemoryRWLockerGenerator

func (*MemoryRWLockerGenerator) CreateSyncRWLocker

func (g *MemoryRWLockerGenerator) CreateSyncRWLocker(name string) (SyncRWLocker, error)

type MutexWrapper added in v0.6.0

type MutexWrapper struct {
	// contains filtered or unexported fields
}

func NewMutexWrapper added in v0.6.0

func NewMutexWrapper(m sync.Locker) *MutexWrapper

func (*MutexWrapper) Lock added in v0.6.0

func (m *MutexWrapper) Lock(ctx context.Context) error

func (*MutexWrapper) Unlock added in v0.6.0

func (m *MutexWrapper) Unlock(ctx context.Context) error

type RWMutexWrapper added in v0.6.0

type RWMutexWrapper struct {
	// contains filtered or unexported fields
}

func NewRWMutexWrapper added in v0.6.0

func NewRWMutexWrapper(m *sync.RWMutex) *RWMutexWrapper

func (*RWMutexWrapper) Lock added in v0.6.0

func (m *RWMutexWrapper) Lock(ctx context.Context) error

func (*RWMutexWrapper) RLock added in v0.6.0

func (m *RWMutexWrapper) RLock(ctx context.Context) error

func (*RWMutexWrapper) RUnlock added in v0.6.0

func (m *RWMutexWrapper) RUnlock(ctx context.Context) error

func (*RWMutexWrapper) Unlock added in v0.6.0

func (m *RWMutexWrapper) Unlock(ctx context.Context) error

type RedSyncMutexWrapper added in v0.3.0

type RedSyncMutexWrapper struct {
	// contains filtered or unexported fields
}

func NewRedSyncMutexWrapper added in v0.3.0

func NewRedSyncMutexWrapper(name string, mutex *redsync.Mutex) *RedSyncMutexWrapper

func (*RedSyncMutexWrapper) Lock added in v0.3.0

func (*RedSyncMutexWrapper) Unlock added in v0.3.0

func (l *RedSyncMutexWrapper) Unlock(ctx context.Context) error

type RedisLockerGenerator added in v0.3.0

type RedisLockerGenerator struct {
	// contains filtered or unexported fields
}

func NewRedisLockerGenerator added in v0.3.0

func NewRedisLockerGenerator(redisPool redsyncredis.Pool) *RedisLockerGenerator

func (*RedisLockerGenerator) CreateSyncLocker added in v0.3.0

func (g *RedisLockerGenerator) CreateSyncLocker(name string) (SyncLocker, error)

type RedisMutextOption added in v0.6.0

type RedisMutextOption struct{}

func (RedisMutextOption) Apply added in v0.6.0

func (o RedisMutextOption) Apply(m *redsync.Mutex)

type SyncLocker added in v0.6.0

type SyncLocker interface {
	Lock(ctx context.Context) error
	Unlock(ctx context.Context) error
}

type SyncLockerGenerator

type SyncLockerGenerator interface {
	CreateSyncLocker(name string) (SyncLocker, error)
}

func GetDefaultSyncLockerGenerator added in v0.8.0

func GetDefaultSyncLockerGenerator() SyncLockerGenerator

type SyncRWLocker

type SyncRWLocker interface {
	SyncLocker
	RLock(ctx context.Context) error
	RUnlock(ctx context.Context) error
}

type SyncRWLockerGenerator

type SyncRWLockerGenerator interface {
	CreateSyncRWLocker(name string) (SyncRWLocker, error)
}

func GetDefaultRWLockerGenerator added in v0.8.0

func GetDefaultRWLockerGenerator() SyncRWLockerGenerator

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL