Rayo::Ring
Inherits Reference < Object
Constructors
new(fd : Int32, base : Int32, slots : Int32, pa : Pointer(LibUring::Params))
SourceClass methods
create(base : Int32, slots : Int32, sq : UInt32, cq : UInt32) : Ring | Nil
Returns nil when the kernel refuses (no io_uring, or older than 6.1).
error
SourceInstance methods
accepting
Sourceaccepting=(accepting : Int32)
Sourcebase
Sourcebuf(bid : UInt16) : Pointer(UInt8)
Sourcedefer_recv(id : Int32) : Nil
Sourcedispose
Sourceenter(min : UInt32, flags : UInt32, wait : Int32 = -1) : Nil
Sourcefd
Sourcegive_buf(bid : UInt16) : Nil
Sourceinstall(fd : Int32) : Int32
Sourceload_acq(p : Pointer(UInt32)) : UInt32
Sourceprovide(bid : UInt16, count : Int32) : Nil
One PROVIDE_BUFFERS request for count consecutive buffers from bid. It completes
inline at submit, before any receive queued after it, and posts no completion.
publish_bufs
Sourceready?
Sourcerelease_slot(slot : Int32) : Nil
Sourceretry_recvs
Rearms the receives that hit ENOBUFS, now that this batch's buffers are back. Ones that find none again just come back next batch: never a resubmit loop inside one batch.
slots
Sourcestore_rel(p : Pointer(T), v : T) : Nil forall T
Sourceto_submit
Sourceto_submit=(to_submit : UInt32)
Sourceused
Sourceused=(used : Int32)
Sourcewatch(ep : Int32) : Nil
Register lazily: the common single-ring path waits in enter, without epoll.