まつもと ゆきひろです
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 をひとつだけ調べて
|抜けているのがまずいように思います。
その通りです。直します。