module

Rayo::Uring

Constants

ACCEPT_MULTISHOT = 1_u16
BUF_SIZE = 2048
CQ_ENTRIES = 32768_u32
CQE_F_BUFFER = 1_u32
CQE_F_MORE = 2_u32
ENOBUFS = 105
ENTER_EXT_ARG = 1_u32 << 3
ENTER_GETEVENTS = 1_u32
ETIME = 62
FEAT_SINGLE_MMAP = 1_u32 << 0
MAX_RINGS = 8
MAX_TIMERS = 4096
NBUF = 4096
OFF_SQES = 268435456_i64
OP_ACCEPT = 13_u8
OP_CLOSE = 19_u8
OP_PROVIDE_BUFFERS = 31_u8
OP_RECV = 27_u8
OP_SEND = 26_u8
OP_SHUTDOWN = 34_u8
RECV_MULTISHOT = 2_u16
REGISTER_EVENTFD = 4
REGISTER_FILES2 = 13
REGISTER_PBUF_RING = 22
SETUP_CQSIZE = 1_u32 << 3
SETUP_DEFER_TASKRUN = 1_u32 << 13
SETUP_SINGLE_ISSUER = 1_u32 << 12
SETUP_SUBMIT_ALL = 1_u32 << 7
SQ_ENTRIES = 4096_u32
SQE_BUFFER_SELECT = 1_u8 << 5
SQE_CQE_SKIP_SUCCESS = 1_u8 << 6
SQE_FIXED_FILE = 1_u8
SYS_ENTER = 426
SYS_REGISTER = 427
SYS_SETUP = 425
TAG_ACCEPT = 1_u64
TAG_CLOSE = 4_u64
TAG_PLAIN_RECV = 6_u64
TAG_PLAIN_SEND = 7_u64
TAG_RECV = 2_u64
TAG_SEND = 3_u64
TAG_SHUTDOWN = 5_u64
TARGET = 524288

Class methods

add_flusher(owner : Flusher) : Nil
Source
arm_recv(r : Ring, id : Int32) : Nil
Source
arm_timeout(milliseconds : Int32, callback : Proc(UInt64, Nil), tag = 0_u64) : UInt64

Preallocated one-shot callbacks, carrying caller-owned integer state. Callbacks must be non-capturing; cancel_timeout accepts the returned generation token.

Source
cancel_timeout(token : UInt64) : Bool
Source
capacity
Source
classic_buffers?

RAYO_CLASSIC_BUFFERS=1 forces the fallback, so it can be tested on any kernel.

Source
close(id : Int32) : Nil
Source
complete(r : Ring, cq : LibUring::Cqe) : Nil
Source
describe
Source
release(id : Int32) : Nil
Source
ring_of(id : Int32) : Ring
Source
send(id : Int32, p : Pointer(UInt8), n : Int32) : Nil
Source
send_plain(fd : Int32, p : Pointer(UInt8), n : Int32, tag : Int32) : Nil
Source
setup(lfds : Pointer(Int32), nlfd : Int32, nofile : UInt64, share : Int32) : Bool
Source
unwatch(tag : Int32) : Nil
Source
watch(fd : Int32, owner : Handler) : Int32

Plain fds share ring zero's provided buffers; their owners handle partial sends. The caller keeps send memory valid until on_sent and relinquishes fd ownership.

Source

Nested types