class Goru::Routines::IO

public

Attributes

intent[R]
public
io[R]
public

Public Class Methods

new(state = nil, io:, intent: :rw, &block) click to toggle source
Calls superclass method Goru::Routine::new
# File lib/goru/routines/io.rb, line 10
def initialize(state = nil, io:, intent: :rw, &block)
  super(state, &block)

  @io = io
  @intent = intent
  @status = :selecting
end

Public Instance Methods

accept() click to toggle source
public
# File lib/goru/routines/io.rb, line 24
def accept
  @io.accept_nonblock
end
read(bytes) click to toggle source
public
# File lib/goru/routines/io.rb, line 30
def read(bytes)
  result = @io.read_nonblock(bytes, exception: false)

  case result
  when :wait_readable, nil
    # nothing to do
  else
    result
  end
end