こんにちは。お金がないので、まともに年が越せるのか心配なきたけーです。 ちょっと前まで、社内の読書会でWorking With TCP Socketsという本を読んでいました。Rubyを使ってTCPSocketを使ったプログラミングについて学ぶことができる楽しい本なのですが、ちまちまと読みなおしています。 その中に、「Non-blocking IO」という章があって、「read, write, accept, connect」をノンブロッキングに行うメソッドについて紹介されています。今回の記事では特にaccept_nonblockメソッドに着目して、Rubyがそれをどのように実装しているのか追ってみます。 acceptを用いたプログラム TCPServer#acceptを用いる。接続を確立するまでブロックする。 require 'socket' server = TCPServer.new