StepMailbox
in package
implements
Mailbox
FinalYes
Deterministic mailbox for the StepRuntime.
Unlike FiberMailbox, dequeueBlocking() ALWAYS suspends the fiber before checking the queue. This guarantees that each message requires an explicit step() call from the test to be processed.
Tags
Table of Contents
Interfaces
Methods
- __construct() : mixed
- close() : void
- Close the mailbox. Subsequent enqueue() calls return EnqueueResult::Dropped without raising. Blocked dequeueBlocking() calls return null once the mailbox drains (closed-and-empty).
- count() : int
- dequeue() : T|null
- dequeueBlocking() : T
- Always suspends the fiber, then checks for messages on resume.
- enqueue() : EnqueueResult
- getWaitingFiber() : Fiber<mixed, mixed>|null
- hasWaitingFiber() : bool
- isClosed() : bool
- isEmpty() : bool
- isFull() : bool
Methods
__construct()
public
__construct(MailboxConfig $config) : mixed
Parameters
- $config : MailboxConfig
close()
Close the mailbox. Subsequent enqueue() calls return EnqueueResult::Dropped without raising. Blocked dequeueBlocking() calls return null once the mailbox drains (closed-and-empty).
public
close() : void
Idempotent — calling close() on an already-closed mailbox is a no-op.
Required by Plan 5 (graceful shutdown). Without close(), the actor's message loop has no way to wake up cleanly when the system stops.
count()
public
count() : int
Return values
intdequeue()
public
dequeue() : T|null
Return values
T|nulldequeueBlocking()
Always suspends the fiber, then checks for messages on resume.
public
dequeueBlocking(Duration $timeout) : T
This ensures exactly one message is processed per step() call.
Parameters
- $timeout : Duration
Tags
Return values
Tenqueue()
public
enqueue(T $message) : EnqueueResult
Parameters
- $message : T
Tags
Return values
EnqueueResultgetWaitingFiber()
public
getWaitingFiber() : Fiber<mixed, mixed>|null
Return values
Fiber<mixed, mixed>|nullhasWaitingFiber()
public
hasWaitingFiber() : bool
Return values
boolisClosed()
public
isClosed() : bool
Return values
boolisEmpty()
public
isEmpty() : bool
Return values
boolisFull()
public
isFull() : bool