Module: IO::Event::Selector

Defined in:
lib/io/event/selector/select.rb,
lib/io/event/selector.rb

Defined Under Namespace

Classes: Select

Class Method Summary collapse

Class Method Details

.default(env = ENV) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/io/event/selector.rb', line 26

def self.default(env = ENV)
	if name = env['IO_EVENT_SELECTOR']&.to_sym
		if const_defined?(name)
			return const_get(name)
		else
			warn "Could not find IO_EVENT_SELECTOR=#{name}!"
		end
	end
	
	if self.const_defined?(:EPoll)
		return EPoll
	elsif self.const_defined?(:KQueue)
		return KQueue
	else
		return Select
	end
end

.new(loop, env = ENV) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/io/event/selector.rb', line 44

def self.new(loop, env = ENV)
	selector = default(env).new(loop)
	
	if debug = env['IO_EVENT_DEBUG_SELECTOR']
		selector = Debug::Selector.new(selector)
	end
	
	return selector
end