ipc

package
v0.0.0-...-c23f155 Latest Latest
Warning

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

Go to latest
Published: May 4, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlockStrategy

type BlockStrategy interface {
	WaitFor(eqFn func() bool)
	Done()
}

func NewXCacheChannelBlockStrategy

func NewXCacheChannelBlockStrategy() BlockStrategy

func NewXCondBlockStrategy

func NewXCondBlockStrategy() BlockStrategy

func NewXCpuNoOpLoopBlockStrategy

func NewXCpuNoOpLoopBlockStrategy(cycles uint32) BlockStrategy

func NewXGoSchedBlockStrategy

func NewXGoSchedBlockStrategy() BlockStrategy

func NewXOsYieldBlockStrategy

func NewXOsYieldBlockStrategy() BlockStrategy

func NewXSleepBlockStrategy

func NewXSleepBlockStrategy(sleepTime time.Duration) BlockStrategy

type Disruptor

type Disruptor[T any] interface {
	Publisher[T]

	RegisterSubscriber(sub Subscriber[T]) error
	// contains filtered or unexported methods
}

func NewXDisruptor

func NewXDisruptor[T any](
	capacity uint64,
	strategy BlockStrategy,
	handler EventHandler[T],
) Disruptor[T]

type EventHandler

type EventHandler[T any] func(event T) error // OnEvent

type Producer

type Producer[T any] Publisher[T]

type Publisher

type Publisher[T any] interface {
	Publish(event T) (uint64, bool, error)
	PublishTimeout(event T, timeout time.Duration)
}

type Sequencer

type Sequencer interface {
	Capacity() uint64
	GetReadCursor() queue.RingBufferCursor
	GetWriteCursor() queue.RingBufferCursor
}

func NewXSequencer

func NewXSequencer(capacity uint64) Sequencer

type Subscriber

type Subscriber[T any] interface {
	HandleEvent(event T) error
}

Jump to

Keyboard shortcuts

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