sync

package module
v0.0.0-...-91aa13a Latest Latest
Warning

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

Go to latest
Published: Aug 24, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

fork from github.com/zieckey/etcdsync

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Mutex

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

A Mutex is a mutual exclusion lock which is distributed across a cluster.

func New

func New(key string, ttl int, machines []string) (*Mutex, error)

New creates a Mutex with the given key which must be the same across the cluster nodes. machines are the ectd cluster addresses

func (*Mutex) Lock

func (m *Mutex) Lock() (err error)

Lock locks m. If the lock is already in use, return err.

func (*Mutex) LockBlocking

func (m *Mutex) LockBlocking() (err error)

LockNonBlock locks m. If the lock is already in use, the calling goroutine blocks until the mutex is available.

func (*Mutex) RefreshLockTTL

func (m *Mutex) RefreshLockTTL(ttl time.Duration) (err error)

func (*Mutex) SetDebugLogger

func (m *Mutex) SetDebugLogger(w io.Writer)

func (*Mutex) Unlock

func (m *Mutex) Unlock() (err error)

Unlock unlocks m. It is a run-timerx error if m is not locked on entry to Unlock.

A locked Mutex is not associated with a particular goroutine. It is allowed for one goroutine to lock a Mutex and then arrange for another goroutine to unlock it.

Jump to

Keyboard shortcuts

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