reftracker

package
v0.0.0-...-365054f Latest Latest
Warning

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

Go to latest
Published: May 16, 2024 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultPatrolPeriod = 1 * time.Second

DefaultPatrolPeriod is an interval between collect loops

Variables

View Source
var (
	// ErrNotFound is returned when incremented or decremented element is not
	// found among tracked elements
	ErrNotFound = errors.New("element not found")
)

Functions

This section is empty.

Types

type RefTracker

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

RefTracker is a collection of elements referenced by string keys. Once element reference count hits zero it will be removed after TTL unless new references will not appear.

func NewRefTracker

func NewRefTracker(patrolPeriod time.Duration) *RefTracker

NewRefTracker starts RefTracker with

func Singleton

func Singleton() *RefTracker

Singleton instantiates globally available reference tracker

func (*RefTracker) Close

func (rt *RefTracker) Close()

Close stops patrol loop

func (*RefTracker) Decr

func (rt *RefTracker) Decr(key string) error

Decr decrements reference count of an element

func (*RefTracker) Incr

func (rt *RefTracker) Incr(key string) error

Incr increments reference count of an element

func (*RefTracker) Put

func (rt *RefTracker) Put(key string, ttl time.Duration, releaseCallback func())

Put introduces tracked element along with its TTL and release callback

Jump to

Keyboard shortcuts

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