mailbox

package
v0.0.0-...-562037d Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2019 License: Apache-2.0 Imports: 7 Imported by: 22

Documentation

Overview

Package mailbox implements mailbox queues and dispatching

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dispatcher

type Dispatcher interface {
	Schedule(fn func())
	Throughput() int
}

func NewDefaultDispatcher

func NewDefaultDispatcher(throughput int) Dispatcher

func NewSynchronizedDispatcher

func NewSynchronizedDispatcher(throughput int) Dispatcher

type Inbound

type Inbound interface {
	PostUserMessage(message interface{})
	PostSystemMessage(message interface{})
	Start()
	Len() int32
}

The Inbound interface is used to enqueue messages to the mailbox

type MessageInvoker

type MessageInvoker interface {
	InvokeSystemMessage(interface{})
	InvokeUserMessage(interface{})
	EscalateFailure(reason interface{}, message interface{})
}

MessageInvoker is the interface used by a mailbox to forward messages for processing

type Producer

type Producer func(invoker MessageInvoker, dispatcher Dispatcher) Inbound

Producer is a function which creates a new mailbox

func Bounded

func Bounded(size int, mailboxStats ...Statistics) Producer

Bounded returns a producer which creates an bounded mailbox of the specified size

func BoundedDropping

func BoundedDropping(size int, mailboxStats ...Statistics) Producer

BoundedDropping returns a producer which creates an bounded mailbox of the specified size that drops front element on push

func Unbounded

func Unbounded(mailboxStats ...Statistics) Producer

Unbounded returns a producer which creates an unbounded mailbox

func UnboundedLockfree

func UnboundedLockfree(mailboxStats ...Statistics) Producer

UnboundedLockfree returns a producer which creates an unbounded, lock-free mailbox. This mailbox is cheaper to allocate, but has a slower throughput than the plain Unbounded mailbox.

type ResumeMailbox

type ResumeMailbox struct{}

ResumeMailbox is message sent by the actor system to resume mailbox processing.

This will not be forwarded to the Receive method

type Statistics

type Statistics interface {
	MailboxStarted()
	MessagePosted(message interface{})
	MessageReceived(message interface{})
	MailboxEmpty()
}

type SuspendMailbox

type SuspendMailbox struct{}

SuspendMailbox is message sent by the actor system to suspend mailbox processing.

This will not be forwarded to the Receive method

Jump to

Keyboard shortcuts

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