mutexmap

package
v0.0.0-...-ea0be71 Latest Latest
Warning

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

Go to latest
Published: Apr 10, 2023 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type M

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

Think of this as an infinite number of named bathroom stalls. Each named stall can only be occupied by one person. When you TryLock(): a) it won't open if it's already occupied. (because it's locked inside) decide to do something else b) it opens and you get in and the stall gets reserved/locked for you. When you get out

you call the unlock callback you obtained from TryLock() to return the stall for use.

func New

func New() *M

func (*M) Lock

func (n *M) Lock(key string) func()

func (*M) TryLock

func (n *M) TryLock(key string) (func(), bool)

returns false if gate already open/reserved returns true if gate was opened for you. you have to use the returned func to release it

Jump to

Keyboard shortcuts

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