utilsk8s.io/utils/keymutex Index | Files

package keymutex

import "k8s.io/utils/keymutex"

Index

Types

type KeyMutex

type KeyMutex interface {
	// Acquires a lock associated with the specified ID, creates the lock if one doesn't already exist.
	LockKey(id string)

	// Releases the lock associated with the specified ID.
	// Returns an error if the specified ID doesn't exist.
	UnlockKey(id string) error
}

KeyMutex is a thread-safe interface for acquiring locks on arbitrary strings.

func NewHashed

func NewHashed(n int) KeyMutex

NewHashed returns a new instance of KeyMutex which hashes arbitrary keys to a fixed set of locks. `n` specifies number of locks, if n <= 0, we use number of cpus. Note that because it uses fixed set of locks, different keys may share same lock, so it's possible to wait on same lock.

Source Files

hashed.go keymutex.go

Version
v0.0.0-20250321185631-1f6e0b77f77e (latest)
Published
Mar 21, 2025
Platform
linux/amd64
Imports
3 packages
Last checked
1 month ago

Tools for package owners.