Documentation ¶
Overview ¶
Package mailbox implements mailbox queues and dispatching
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetLogLevel ¶
SetLogLevel sets the log level for the logger.
SetLogLevel is safe to call concurrently
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 Mailbox ¶
type Mailbox interface { PostUserMessage(message interface{}) PostSystemMessage(message interface{}) RegisterHandlers(invoker MessageInvoker, dispatcher Dispatcher) Start() }
Mailbox 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() Mailbox
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
Bounded dropping 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