sync

package
v2.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 15, 2020 License: Apache-2.0 Imports: 2 Imported by: 8

Documentation

Overview

Package sync is an interface for distributed synchronization

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrLockTimeout = errors.New("lock timeout")
)

Functions

This section is empty.

Types

type Leader added in v2.5.0

type Leader interface {
	// resign leadership
	Resign() error
	// status returns when leadership is lost
	Status() chan bool
}

Leader provides leadership election

type LeaderOption added in v2.5.0

type LeaderOption func(o *LeaderOptions)

type LeaderOptions added in v2.5.0

type LeaderOptions struct{}

type LockOption added in v2.5.0

type LockOption func(o *LockOptions)

func LockTTL added in v2.5.0

func LockTTL(t time.Duration) LockOption

LockTTL sets the lock ttl

func LockWait added in v2.5.0

func LockWait(t time.Duration) LockOption

LockWait sets the wait time

type LockOptions added in v2.5.0

type LockOptions struct {
	TTL  time.Duration
	Wait time.Duration
}

type Option

type Option func(o *Options)

func Nodes added in v2.5.0

func Nodes(a ...string) Option

Nodes sets the addresses to use

func Prefix added in v2.5.0

func Prefix(p string) Option

Prefix sets a prefix to any lock ids used

type Options

type Options struct {
	Nodes  []string
	Prefix string
}

type Sync added in v2.5.0

type Sync interface {
	// Initialise options
	Init(...Option) error
	// Return the options
	Options() Options
	// Elect a leader
	Leader(id string, opts ...LeaderOption) (Leader, error)
	// Lock acquires a lock
	Lock(id string, opts ...LockOption) error
	// Unlock releases a lock
	Unlock(id string) error
	// Sync implementation
	String() string
}

Sync is an interface for distributed synchronization

Directories

Path Synopsis
Package etcd is an etcd implementation of lock
Package etcd is an etcd implementation of lock
Package memory provides a sync.Mutex implementation of the lock for local use
Package memory provides a sync.Mutex implementation of the lock for local use

Jump to

Keyboard shortcuts

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