From: WATANABE Hirofumi Date: 2001-10-01T19:06:16+09:00 Subject: [ruby-list:31677] Re: druby & open3 わたなべです。 Masatoshi SEKI writes: :Windows NTのプロセスのモデルをよくしらないのですが、 :UNIXであるとfork/execとdrb-1.3.2の組合せで問題が起きることが :わかっています。(子プロセスへソケットが渡ることが起因‥) Linuxでも同じでした。 % ruby -v server.rb ruby 1.6.5 (2001-09-19) [i386-linux] druby://localhost:4000 [return] to exit /usr/local/lib/ruby/1.6/open3.rb:22: stream closed (IOError) # /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:109:in `sysread' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:109:in `load' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:135:in `recv_request' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:434:in `proc' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:475:in `loop' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:475:in `proc' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:426:in `start' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:426:in `proc' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:400:in `run' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:397:in `start' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:397:in `run' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:359:in `initialize' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:484:in `new' /usr/local/lib/ruby/site_ruby/1.6/drb/drb.rb:484:in `start_service' server.rb:11 :次のバージョン(drb-1.3.3)からはdRubyの作ったソケットを : soc.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC) :する予定です。 :# あれ? 1.3.3b の最新版に入ってない‥。入れておこう。 CVSのlib/drbを使ったんですが、まだ入ってませんか? :ところでWinなどの非UNIXな環境でも CLOEXEC という定数は :使えるのでしょうか? Cygwinにならあります。 他は使えないと思ったほうがいいでしょう。 -- わたなべひろふみ