NAME
Linux::Event::Proactor::Backend::Uring - io_uring backend for Linux::Event::Proactor
SYNOPSIS
# Usually constructed internally by Linux::Event::Proactor.
my $loop = Linux::Event::Loop->new(
model => 'proactor',
backend => 'uring',
);
DESCRIPTION
Linux::Event::Proactor::Backend::Uring is the real completion backend for Linux::Event::Proactor. It submits reads, writes, socket operations, timers, and cancellation requests through IO::Uring.
The backend preserves the core proactor invariants by leaving user callback execution to the engine. It records pending operations by backend token and hands normalized success or failure information back to the owning loop.
CONSTRUCTOR OPTIONS
The backend is normally constructed internally. Recognized options include:
submit_batch_sizeOptional submission batching threshold. When non-zero, the backend flushes the ring after this many queued submissions.
cqe_entriesOptional
IO::Uringcompletion queue size tuning.sqpollOptional
IO::UringSQPOLL mode toggle.
SUPPORTED OPERATIONS
This backend currently implements:
readwriterecvsendacceptconnectshutdownclosetimeoutcancel
ERROR HANDLING
io_uring completion results use negative errno values for failures. This backend normalizes those into positive errno values and uses Linux::Event::Error objects through the owning proactor.
PERFORMANCE NOTES
Submission batching is intentionally optional. The default favors simplicity and predictable semantics. When enabled, batching can improve throughput under heavy operation loads by reducing ring submissions.
SEE ALSO
Linux::Event::Proactor, Linux::Event::Proactor::Backend, IO::Uring