Slide 59
Slide 59 text
def new_ipv6_server(addr, port, opt)
opt.key?(:ipv6only) or return Kgio::TCPServer.new(addr, port)
defined?(IPV6_V6ONLY) or
abort "Socket::IPV6_V6ONLY not defined, upgrade Ruby and/or your OS"
sock = Socket.new(AF_INET6, SOCK_STREAM, 0)
sock.setsockopt(IPPROTO_IPV6, IPV6_V6ONLY, opt[:ipv6only] ? 1 : 0)
sock.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
sock.bind(Socket.pack_sockaddr_in(port, addr))
IO_PURGATORY << sock
Kgio::TCPServer.for_fd(sock.fileno)
end
ret = IO.select(l, nil, SELF_PIPE, @timeout) and ready = ret[0]
Unicorn
IO.select(l, nil, SELF_PIPE, @timeout)