1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
require 'thread'
require 'socket'
require 'nio/version'
# New I/O for Ruby
module NIO
# NIO implementation, one of the following (as a string):
# * select: in pure Ruby using Kernel.select
# * libev: as a C extension using libev
# * java: using Java NIO
def self.engine; ENGINE end
end
if ENV["NIO4R_PURE"] || (ENV["OS"] =~ /Windows/i && !defined?(JRUBY_VERSION))
require 'nio/monitor'
require 'nio/selector'
NIO::ENGINE = 'select'
else
require 'nio4r_ext'
if defined?(JRUBY_VERSION)
require 'java'
require 'jruby'
org.nio4r.Nio4r.new.load(JRuby.runtime, false)
NIO::ENGINE = 'java'
else
NIO::ENGINE = 'libev'
end
end
|