Module: Async::IO::ServerSocket
Instance Method Summary collapse
Instance Method Details
#accept ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/async/io/socket.rb', line 39 def accept peer, address = async_send(:accept_nonblock) if block_given? wrapper = Socket.new(peer, self.reactor) begin yield wrapper, address ensure wrapper.close end else return Socket.new(peer, self.reactor), address end end |
#accept_each(task: Task.current) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/async/io/socket.rb', line 55 def accept_each(task: Task.current) task.annotate "accepting connections #{self.local_address.inspect}" while true task.async(*self.accept) do |task, io, address| task.annotate "incoming connection #{address}" begin yield io, address ensure io.close end end end end |