class EventMachine::Selectable
@private
Attributes
io[R]
uuid[R]
Public Class Methods
new(io)
click to toggle source
# File lib/em/pure_ruby.rb, line 448 def initialize io @uuid = UuidGenerator.generate @io = io @last_activity = Reactor.instance.current_loop_time if defined?(Fcntl::F_GETFL) m = @io.fcntl(Fcntl::F_GETFL, 0) @io.fcntl(Fcntl::F_SETFL, Fcntl::O_NONBLOCK | m) else # Windows doesn't define F_GETFL. # It's not very reliable about setting descriptors nonblocking either. begin s = Socket.for_fd(@io.fileno) s.fcntl( Fcntl::F_SETFL, Fcntl::O_NONBLOCK ) rescue Errno::EINVAL, Errno::EBADF warn "Serious error: unable to set descriptor non-blocking" end end # TODO, should set CLOEXEC on Unix? @close_scheduled = false @close_requested = false se = self; @io.instance_eval { @my_selectable = se } Reactor.instance.add_selectable @io end
Public Instance Methods
close_scheduled?()
click to toggle source
# File lib/em/pure_ruby.rb, line 475 def close_scheduled? @close_scheduled end
get_peername()
click to toggle source
# File lib/em/pure_ruby.rb, line 487 def get_peername nil end
heartbeat()
click to toggle source
# File lib/em/pure_ruby.rb, line 495 def heartbeat end
select_for_reading?()
click to toggle source
# File lib/em/pure_ruby.rb, line 479 def select_for_reading? false end
select_for_writing?()
click to toggle source
# File lib/em/pure_ruby.rb, line 483 def select_for_writing? false end
set_inactivity_timeout(tm)
click to toggle source
# File lib/em/pure_ruby.rb, line 491 def set_inactivity_timeout tm @inactivity_timeout = tm end