まつもと ゆきひろです

In message "[ruby-dev:11544] select with thread"
    on 00/11/16, GOTOU YUUZOU <gotoyuzo / notwork.org> writes:

|以下のようなスクリプトを動かすと、
|
|  require 'thread'
|  require 'socket'
|
|  Thread.start{
|    s0, s1 = Socket.socketpair("PF_UNIX", "SOCK_STREAM", 0)
|    s1.print("foo")
|    a = select([s0, s1])
|    p a[0]
|  }
|  sleep(10)
|
|こうなります。(本当は [#<Socket:0x80faae8>] だけのはず)
|
|  $ ruby -v select.rb 
|  ruby 1.6.2 (2000-11-14) [i386-netbsd1.5J]
|  [#<Socket:0x80faae8>, #<Socket:0x80faafc>]
|
|intersect_fds(eval.c)で、若い fd をひとつだけ調べて
|抜けているのがまずいように思います。

その通りです。直します。