class Socket::HostnameResolutionResult
Public Class Methods
new
(size)
# File ext/socket/lib/socket.rb, line 975 def initialize(size) @size = size @taken_count = 0 @rpipe, @wpipe = IO.pipe @results = [] @mutex = Mutex.new end
Public Instance Methods
add
(family, result)
# File ext/socket/lib/socket.rb, line 987 def add(family, result) @mutex.synchronize do @results.push [family, result] @wpipe.putc HOSTNAME_RESOLUTION_QUEUE_UPDATED end end
close
()
# File ext/socket/lib/socket.rb, line 1009 def close @rpipe.close @wpipe.close end
get
()
# File ext/socket/lib/socket.rb, line 994 def get return nil if @results.empty? res = nil @mutex.synchronize do @rpipe.getbyte res = @results.shift end @taken_count += 1 close if @taken_count == @size res end
notifier
()
# File ext/socket/lib/socket.rb, line 983 def notifier [@rpipe] end