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
Ruby Core © 1993–2024 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.