Documentation
¶
Overview ¶
Package mailbox implements mailbox queues and dispatching
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Dispatcher ¶
type Dispatcher interface {
Schedule(fn func())
Throughput() int
}
func NewDefaultDispatcher ¶
func NewDefaultDispatcher(throughput int) Dispatcher
type Inbound ¶
type Inbound interface {
PostUserMessage(message interface{})
PostSystemMessage(message interface{})
Start()
}
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 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