class EventMachine::Selectable
@private
Attributes
io[RW]
is_server[RW]
uuid[R]
Public Class Methods
new(io)
click to toggle source
# File lib/em/pure_ruby.rb, line 687 def initialize io @io = io @uuid = UuidGenerator.generate @is_server = false @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 715 def close_scheduled? @close_scheduled end
get_peername()
click to toggle source
# File lib/em/pure_ruby.rb, line 727 def get_peername nil end
get_sockname()
click to toggle source
# File lib/em/pure_ruby.rb, line 731 def get_sockname nil end
heartbeat()
click to toggle source
# File lib/em/pure_ruby.rb, line 739 def heartbeat end
schedule_close(after_writing=false)
click to toggle source
# File lib/em/pure_ruby.rb, line 742 def schedule_close(after_writing=false) if after_writing @close_requested = true else @close_scheduled = true end end
select_for_reading?()
click to toggle source
# File lib/em/pure_ruby.rb, line 719 def select_for_reading? false end
select_for_writing?()
click to toggle source
# File lib/em/pure_ruby.rb, line 723 def select_for_writing? false end
set_inactivity_timeout(tm)
click to toggle source
# File lib/em/pure_ruby.rb, line 735 def set_inactivity_timeout tm @inactivity_timeout = tm end