locks

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2021 License: BSD-2-Clause Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Config = struct {
	DeadlockTimeout time.Duration
	StackDepth      int
}{
	DeadlockTimeout: time.Second * 10,
	StackDepth:      50,
}

Functions

This section is empty.

Types

type ConsulLock added in v0.0.4

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

func (*ConsulLock) Lock added in v0.0.4

func (l *ConsulLock) Lock(ctx context.Context) (chan struct{}, error)

func (*ConsulLock) Unlock added in v0.0.4

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

func (*ConsulLock) WaitForUnlock added in v0.0.4

func (l *ConsulLock) WaitForUnlock(ctx context.Context) error

type ConsulLockPool added in v0.0.4

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

func NewConsulLockPool added in v0.0.4

func NewConsulLockPool(consulAddress string) (ConsulLockPool, error)

func (ConsulLockPool) NewLock added in v0.0.4

func (p ConsulLockPool) NewLock(lockName string, expiry time.Duration) *ConsulLock

type CountDownLatch

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

CountDownLatch is the same as sync.WaitGroup but with the ability to wait with timeout

func NewCountDownLatch

func NewCountDownLatch() *CountDownLatch

NewCountDownLatch creates a new CountDownLatch

func (*CountDownLatch) Add

func (l *CountDownLatch) Add(delta int)

Add increases/decreases the countdown

func (*CountDownLatch) Close

func (l *CountDownLatch) Close()

Close closes the latch unblocking wait

func (*CountDownLatch) Counter

func (l *CountDownLatch) Counter() int

Counter returns the current count down number

func (*CountDownLatch) Done

func (l *CountDownLatch) Done()

Done decreases the countdown by one

func (*CountDownLatch) Wait

func (l *CountDownLatch) Wait() <-chan struct{}

Wait to be unblocked

func (*CountDownLatch) WaitWithTimeout

func (l *CountDownLatch) WaitWithTimeout(timeout time.Duration) bool

WaitWithTimeout waits until the timeout runs out or until the countdown is zero

type Latch

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

Latch reusable lock that uses a channel to wait for the release of the lock

func NewLatch

func NewLatch() *Latch

NewLatch creates a new LockerChan

func (*Latch) Lock

func (c *Latch) Lock()

Lock locks the release of wait

func (*Latch) Unlock

func (c *Latch) Unlock()

Unlock releases the lock

func (*Latch) Wait

func (c *Latch) Wait() <-chan struct{}

Wait wait for the lock to be released

type Mutex

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

func (*Mutex) Lock

func (m *Mutex) Lock()

func (*Mutex) Unlock

func (m *Mutex) Unlock()

type RWMutex

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

func (*RWMutex) Lock

func (m *RWMutex) Lock()

func (*RWMutex) RLock

func (m *RWMutex) RLock()

func (*RWMutex) RUnlock

func (m *RWMutex) RUnlock()

func (*RWMutex) Unlock

func (m *RWMutex) Unlock()

type RedisLock added in v0.0.3

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

func (RedisLock) Lock added in v0.0.3

func (l RedisLock) Lock() (chan struct{}, error)

func (RedisLock) Unlock added in v0.0.3

func (l RedisLock) Unlock() error

type RedisLockPool added in v0.0.4

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

func NewRedisLockPool added in v0.0.4

func NewRedisLockPool(redisAddresses []string) (RedisLockPool, error)

func (RedisLockPool) NewLock added in v0.0.4

func (p RedisLockPool) NewLock(lockName string, expiry time.Duration) RedisLock

Jump to

Keyboard shortcuts

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