buffer

package
v1.25.0 Latest Latest
Warning

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

Go to latest
Published: Nov 5, 2019 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Package buffer provides an implementation of an unbounded buffer.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Unbounded

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

Unbounded is an implementation of an unbounded buffer which does not use extra goroutines. This is typically used for passing updates from one entity to another within gRPC.

All methods on this type are thread-safe and don't block on anything except the underlying mutex used for synchronization.

func NewUnbounded

func NewUnbounded() *Unbounded

NewUnbounded returns a new instance of Unbounded.

func (*Unbounded) Get

func (b *Unbounded) Get() <-chan interface{}

Get returns a read channel on which values added to the buffer, via Put(), are sent on.

Upon reading a value from this channel, users are expected to call Load() to send the next buffered value onto the channel if there is any.

func (*Unbounded) Load

func (b *Unbounded) Load()

Load sends the earliest buffered data, if any, onto the read channel returned by Get(). Users are expected to call this every time they read a value from the read channel.

func (*Unbounded) Put

func (b *Unbounded) Put(t interface{})

Put adds t to the unbounded buffer.

Jump to

Keyboard shortcuts

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