Spec-Zone.ru › Ruby 3.4
  1. Socket::
  2. HostnameResolutionResult

class Socket::HostnameResolutionResult

Родительский класс:
Object

Открытые методы класса

new (size) Показать исходный код
# File ext/socket/lib/socket.rb, line 988
def initialize(size)
  @size = size
  @taken_count = 0
  @rpipe, @wpipe = IO.pipe
  @results = []
  @mutex = Mutex.new
end

Открытые методы экземпляра

add (family, result) Показать исходный код
# File ext/socket/lib/socket.rb, line 1000
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 1022
def close
  @rpipe.close
  @wpipe.close
end
get () Показать исходный код
# File ext/socket/lib/socket.rb, line 1007
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 996
def notifier
  [@rpipe]
end

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API