eve.backend.linux.uring
Linux runtime-selected Layer 0 backend.
On kernels that allow io_uring, this module exposes a real io_uring-backed readiness poller. When setup is rejected or unavailable it falls back to the reliable epoll backend so higher layers still have a usable Linux path.
enum OperationKind
struct OsPoller
Types 2
POLL = 1
REMOVE = 2
structOsPoller
Linux Layer 0 poller that prefers io_uring and falls back to epoll when the runtime rejects io_uring setup.
Fields
eve.backend.linux.epoll.OsPoller _fallbackbool _usingFallbackbool _ioUringAvailablebool _sqpollActiveuint _sqThreadIdleint _probeErrorint _fdvoid * _sqRingvoid * _cqRingvoid * _sqesRegionsize_t _sqRingLengthsize_t _cqRingLengthsize_t _sqesLengthbool _singleMmapshared(uint) * _sqHeadshared(uint) * _sqTailshared(uint) * _sqRingMaskshared(uint) * _sqRingEntriesshared(uint) * _sqArrayio_uring_sqe * _sqesshared(uint) * _cqHeadshared(uint) * _cqTailshared(uint) * _cqRingMaskshared(uint) * _cqRingEntriesio_uring_cqe * _cqesRegistration * _registrationssize_t _registrationCapacityNativeEvent * _pendingEventssize_t _pendingHeadsize_t _pendingCountulong _submitSequenceMethods
ulong makeOperationId(uint slotIndex, OperationKind kind, ulong sequence) static pure @safe nothrow @nogcbool processCompletion(ref const(io_uring_cqe) cqe, scope NativeEvent[] output, ref int written, ulong awaitedUserData, ref int awaitedResult) @trusted nothrow @nogcbool drainCompletions(scope NativeEvent[] output, ref int written, ulong awaitedUserData, ref int awaitedResult) @trusted nothrow @nogcOsPoller create(bool sqpoll, uint sqThreadIdle = 20) static @trusted nothrow @nogcCreate a new Linux poller with optional SQPOLL mode.bool isValid() @property const pure @safe nothrow @nogcCheck whether the active backend was created successfully.bool ioUringAvailable() @property const pure @safe nothrow @nogcReport whether `io_uring` is active for this poller instance.uint sqThreadIdle() @property const pure @safe nothrow @nogcReport the configured SQPOLL thread idle timeout.bool usingFallback() @property const pure @safe nothrow @nogcReport whether this poller instance is using the `epoll` fallback path.BackendId backendId() @property const pure @safe nothrow @nogcReturn the identifier of the active backend.BackendCapabilities capabilities() @property const pure @safe nothrow @nogcReturn the capability flags for the active backend.Handle handle() @property const pure @safe nothrow @nogcReturn the native handle wrapper for the active backend.int registerHandle(Handle handle, IoInterest interest, ulong userData, WatcherFlags flags = WatcherFlags.none) @trusted nothrow @nogc Register a handle with the active backend. Params: handle = Handle to register. interest = Requested readiness mask. userData = Opaque value returned in translated events. ...int modifyHandle(Handle handle, IoInterest interest, ulong userData, WatcherFlags flags = WatcherFlags.none) @trusted nothrow @nogc Modify the interest mask and user data for a registered handle. Params: handle = Registered handle to update. interest = New readiness mask. userData = Replacement opaque value....int wait(scope NativeEvent[] nativeEvents, int timeoutMs) @trusted nothrow @nogcWait for native events from the active backend.OsEvent translate(ref const(NativeEvent) nativeEvent) static pure @safe nothrow @nogcTranslate a native backend event into the shared Layer 0 event shape.IoReady translateReady(uint nativeMask) static pure @safe nothrow @nogcTranslate a native readiness mask into shared readiness flags.Nested Templates
RegistrationFunctions 3
Variables 1
private enumvar
requestedRingEntries = 1024u