optmpmc

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2025 License: AGPL-3.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type OptimizedMPMCQueue

type OptimizedMPMCQueue[T any] struct {
	// contains filtered or unexported fields
}

OptimizedMPMCQueue is a lock‑free MPMC queue with extra padding to reduce false sharing.

func New

func New[T any](capacity uint64) *OptimizedMPMCQueue[T]

New creates a new OptimizedMPMCQueue with the given capacity (rounded up to a power of 2).

func (*OptimizedMPMCQueue[T]) Dequeue

func (q *OptimizedMPMCQueue[T]) Dequeue() (T, bool)

Dequeue removes and returns a value from the queue. It spins until a cell is ready.

func (*OptimizedMPMCQueue[T]) Enqueue

func (q *OptimizedMPMCQueue[T]) Enqueue(val T)

Enqueue adds a value into the queue. It spins until a slot is available.

func (*OptimizedMPMCQueue[T]) FreeSlots

func (q *OptimizedMPMCQueue[T]) FreeSlots() uint64

FreeSlots returns how many slots are free.

func (*OptimizedMPMCQueue[T]) UsedSlots

func (q *OptimizedMPMCQueue[T]) UsedSlots() uint64

UsedSlots returns an approximate count of used slots.

Jump to

Keyboard shortcuts

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