Nexus API Reference

SwooleMailbox
in package
implements Mailbox

FinalYes

Swoole-backed mailbox using a Swoole\Coroutine\Channel for message passing.

On close(), remaining messages are drained from the channel into an internal SplQueue backup so they can still be dequeued after the channel is closed.

Note: Swoole Channel pop(0.0) blocks indefinitely because 0.0 is treated as falsy, falling back to the default -1 timeout. We use a tiny positive epsilon (0.001s) for non-blocking operations instead.

Tags
psalm-api
template

T of object

implements

Mailbox<T>

Table of Contents

Interfaces

Mailbox

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
enqueue()  : EnqueueResult
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.


        
On this page

Search results