class Socket::HostnameResolutionResult
Public Class Methods
Source
# File ext/socket/lib/socket.rb, line 979 def initialize(size) @size = size @taken_count = 0 @rpipe, @wpipe = IO.pipe @results = [] @mutex = Mutex.new end
Public Instance Methods
Source
# File ext/socket/lib/socket.rb, line 991 def add(family, result) @mutex.synchronize do @results.push [family, result] @wpipe.putc HOSTNAME_RESOLUTION_QUEUE_UPDATED end end
Source
# File ext/socket/lib/socket.rb, line 998 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