module Forwarders
Forwarders for optional selector hooks that not every backing selector implements (e.g. io_close is only provided by URing). Each method here is mixed into the wrapper's singleton class only when the wrapped selector actually defines a method of the same name, so feature detection via respond_to? continues to reflect the real backend.
Definitions
def io_close(descriptor)
Close a file descriptor, forwarded to the underlying selector. Ruby invokes this hook with a raw integer descriptor (Ruby 4.0+).
Signature
-
parameter
descriptorInteger The raw file descriptor being closed.
Implementation
def io_close(descriptor)
log("Closing file descriptor #{descriptor}")
@selector.io_close(descriptor)
end
def futex_wait(fiber, futex, expected)
Wait for a futex value to change, forwarded to the underlying selector.
Implementation
def futex_wait(fiber, futex, expected)
log("Waiting for futex #{futex.inspect} with value #{expected}")
@selector.futex_wait(fiber, futex, expected)
end
def futex_waitv(fiber, entries)
Wait for any futex value to change, forwarded to the underlying selector.
Implementation
def futex_waitv(fiber, entries)
log("Waiting for futex vector #{entries.inspect}")
@selector.futex_waitv(fiber, entries)
end