Ruby の標準添付ライブラリに gserver というのがあって、これを用いれば頗る簡単に TCP サーバを書くことが出来、こりゃいいね、って思いながら使ってみたのですけれども、サーバの停止の手続きについてちょっと悩むことがありました。
いざサーバの停止を行おうとするとき、まだ接続中のクライアントが居たらば、その終了を待ってから、サーバは停止してほしいのは誰しも考える所です(「優雅なシャットダウン」 “Graceful shutdown” )。GServer
クラスのインタフェースとしては #shutdown
メソッドが、それらしいことを行うはずなのですが、実際はそう上手くは問屋が卸しませんでした。