I/O してると Ruby CVS HEAD でシグナルがきかなるよ問題。
loop { sleep 1 } では死にきれないことがあったので、 結局 nonblocking mode と select(2) を使うことにした。 これでしばらく様子を見よう。
(03:16)
あれ? RAA から fcgi が消えてる。 そうか、こないだの RAA 整理で消えたのか。
うーん、ソースがないのも不便だよなあ。 せめて fcgi.rb だけでも見える場所に置いておくか。
(03:37)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
ちょっと前にfcgi.rbをWindowsで使ったのですが,
> trap('SIGPIPE','IGNORE')
これがWindowsではエラーになってしまうようです(SIGPIPEが存在しないため?)。
・WindowsXP Pro (SP2)
・ruby 1.8.1 (2003-12-25) [i386-mswin32]
追試してみました。シグナルと、最近入った
nonblocking 関係を外せば動作するようです。
ただ、Win32 だとシグナルの代わりにメッセージを
使うみたいなので、これに対応しないと実用に
ならないだろうと思います。
ちなみに、fcgi.rb 以外の環境は何をお使いでしょうか?
fcgi.rb以外の環境というとサーバの環境でしょうか。
Apache 1.3.33(win)
mod_fastcgi 2.4.1
で使っています。
cgi周りは標準のcgi.rbに堀川さんのcgisup.rbをかませて,1.6/1.8の互換環境にしています。
そうか、Windows でも Apache 動くんでしたっけ。
なぜかすっきり忘れてました。
で、ちょっと Apache2 で試してみましたが、「動作
しますね」は嘘すぎました。どうも最初の FCGI.cgi?
がすでに動作していないようです。FastCGI development
kit の Windows 対応コードを見るかぎり、pure Ruby
で対応するのは凄まじく面倒そうです。
当面あきらめます。
了解しました。
では無理せず?Unix系(うちはSolarisかFreeBSDなんですが)で使います。