For such case, we should extract the routine into `def source(io)` or similar method. Assuming TCPSocket by default is ok.
Now, only two restrictions 'io' is readable and the server's first argument has `accept_nonblock`.
Adding more restriction seems no merit.