queue

package
v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Feb 6, 2024 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Unbounded

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

Unbounded thread-safe Queue using ring-buffer reference: https://blog.dubbelboer.com/2015/04/25/go-faster-queue.html https://github.com/eapache/queue

func NewUnbounded

func NewUnbounded[T any]() *Unbounded[T]

NewUnbounded creates an instance of Unbounded

func (*Unbounded[T]) Cap

func (q *Unbounded[T]) Cap() int

Cap return the capacity (without allocations)

func (*Unbounded[T]) Close

func (q *Unbounded[T]) Close()

Close the queue and discard all entries in the queue all goroutines in wait() will return

func (*Unbounded[T]) CloseRemaining

func (q *Unbounded[T]) CloseRemaining() []T

CloseRemaining will close the queue and return all entries in the queue. All goroutines in wait() will return.

func (*Unbounded[T]) IsClosed

func (q *Unbounded[T]) IsClosed() bool

IsClosed returns true if the queue has been closed The call cannot guarantee that the queue hasn't been closed while the function returns, so only "true" has a definite meaning.

func (*Unbounded[T]) IsEmpty

func (q *Unbounded[T]) IsEmpty() bool

IsEmpty returns true when the queue is empty

func (*Unbounded[T]) Len

func (q *Unbounded[T]) Len() int

Len return the current length of the queue.

func (*Unbounded[T]) Pop

func (q *Unbounded[T]) Pop() (T, bool)

Pop removes the item from the front of the queue If false is returned, it either means 1) there were no items on the queue or 2) the queue is closed.

func (*Unbounded[T]) Push

func (q *Unbounded[T]) Push(i T) bool

Push adds an item to the back of the queue It can be safely called from multiple goroutines It will return false if the queue is closed. In that case the Item is dropped.

func (*Unbounded[T]) Wait

func (q *Unbounded[T]) Wait() (T, bool)

Wait for an item to be added. If there is items on the queue the first will be returned immediately. Will return nil, false if the queue is closed. Otherwise, the return value of "remove" is returned.

Jump to

Keyboard shortcuts

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