Method: Async::Scheduler#io_read
- Defined in:
- lib/async/scheduler.rb
#io_read(io, buffer, length, offset = 0) ⇒ Object
Read from the specified IO into the buffer.
339 340 341 342 343 344 345 346 347 348 349 350 351 |
# File 'lib/async/scheduler.rb', line 339 def io_read(io, buffer, length, offset = 0) fiber = Fiber.current if timeout = io.timeout timer = @timers.after(timeout) do fiber.raise(::IO::TimeoutError, "Timeout (#{timeout}s) while waiting for IO to become readable!") end end @selector.io_read(fiber, io, buffer, length, offset) ensure timer&.cancel! end |