Help us shape the future of Go! Take the 2026 Go Developer Survey

locksutil

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2017 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 itterated 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 consistant 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