sync

package
v0.0.0-...-499b85e Latest Latest
Warning

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

Go to latest
Published: Aug 3, 2021 License: Apache-2.0 Imports: 7 Imported by: 17

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ParsingViperConfig addresses the fact that config parsing using Viper is not thread safe.
	ParsingViperConfig sync.Mutex
)

Functions

func Trap

func Trap(gr *run.Group, cancel context.CancelFunc)

Trap listens to interrupt signals and handles context cancellation and channel closing on a group run.

Types

type Cache

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

Cache is a barebones cache implementation.

func NewCache

func NewCache(capacity int) Cache

NewCache returns a new instance of Cache.

func (*Cache) Delete

func (c *Cache) Delete(key string) bool

Delete removes an entry by given key

func (*Cache) Load

func (c *Cache) Load(key string) *CacheEntry

Load loads an entry by given key

func (*Cache) Store

func (c *Cache) Store(key string, val interface{}, expiration time.Time)

Store adds an entry for given key and value

type CacheEntry

type CacheEntry struct {
	V interface{}
	// contains filtered or unexported fields
}

CacheEntry represents an entry on the cache. You can type assert on V.

type NamedRWMutex

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

NamedRWMutex works the same as RWMutex, the only difference is that it stores mutexes in a map and reuses them. It's handy if you want to write-lock, write-unlock, read-lock and read-unlock for specific names only.

func NewNamedRWMutex

func NewNamedRWMutex() NamedRWMutex

NewNamedRWMutex returns a new instance of NamedRWMutex.

func (*NamedRWMutex) Lock

func (m *NamedRWMutex) Lock(name string)

Lock locks rw for writing.

func (*NamedRWMutex) RLock

func (m *NamedRWMutex) RLock(name string)

RLock locks rw for reading.

func (*NamedRWMutex) RUnlock

func (m *NamedRWMutex) RUnlock(name string)

RUnlock undoes a single RLock call.

func (*NamedRWMutex) Unlock

func (m *NamedRWMutex) Unlock(name string)

Unlock unlocks rw for writing.

Jump to

Keyboard shortcuts

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