ago=beginこんにちは、なかむら(う)です。場合、そのスレッドをThread#killで終了されることができません。ここで永久に待ち状態となるこの例に限定すると、以下のパッチで解決します。例がacceptなのでacceptだけ対処しています。思うに、socket.soからrb_thread_blocking_region()を呼び出すより、このパッチのように、io.cでやってるのと同様、ブロックしうる関数の呼び出しの前に読み書き可能のチェックを行うべきではないでしょうか。向きになってしまうことがあるようです。なんか心当たりはありますか?それでは。ago=beginこんにちは、なかむら(う)です。wrote:思うに、socket.soからrb_thread_blocking_region()を呼び出すより、このパッチのように、io.cでやってるのと同様、ブロックしうる関数の呼び出しの前に読み書き可能のチェックを行うべきではないでしょうか。考えるに、sendやrecvはいずれにせよブロックする可能性があるのでrb_thread_blocking_region()でくくっておく必要はあるのではないかと考え直しました。それはそれとして事前に読み書き可能のチェックを行うのには意味はあると思うので、そういった点を全体に適用したパッチを作成しました。-1)rb_sys_fail("recvmsg(2)");それでは。writes:|いろいろ考えるに、sendやrecvはいずれにせよブロックする可能性|があるのでrb_thread_blocking_region()でくくっておく必要はある|のではないかと考え直しました。|それはそれとして事前に読み書き可能のチェックを行うのには意味|はあると思うので、そういった点を全体に適用したパッチを作成し|ました。||commitしちゃいたいのですがどうでしょうか?どうぞ。ダメだったらリバートするということで。