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