locksutil

package
v1.0.0-beta2 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2018 License: MPL-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LockCount = 256
)

Variables

This section is empty.

Functions

func LockIndexForKey added in v0.7.0

func LockIndexForKey(key string) uint8

Types

type LockEntry added in v0.7.0

type LockEntry struct {
	sync.RWMutex
}

func CreateLocks

func CreateLocks() []*LockEntry

CreateLocks returns an array so that the locks can be iterated over in order.

This is only threadsafe if a process is using a single lock, or iterating over the entire lock slice in order. Using a consistent order avoids deadlocks because you can never have the following:

Lock A, Lock B Lock B, Lock A

Where process 1 is now deadlocked trying to lock B, and process 2 deadlocked trying to lock A

func LockForKey added in v0.7.0

func LockForKey(locks []*LockEntry, key string) *LockEntry

func LocksForKeys added in v0.9.1

func LocksForKeys(locks []*LockEntry, keys []string) []*LockEntry

Jump to

Keyboard shortcuts

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