From: matz@... (Yukihiro Matsumoto) Date: 1998-06-10T17:21:05+09:00 Subject: [ruby-dev:2840] Re: [BUG] IO#eof? when Thread using まつもと ゆきひろです In message "[ruby-dev:2839] Re: [BUG] IO#eof? when Thread using" on 98/06/10, Takashi Nakai writes: |こんにちは、中井です。 |In message "[ruby-dev:2838] Re: [BUG] IO#eof? when Thread using", |Yukihiro Matsumoto wrote... | >まつもと ゆきひろです | > | >rubyではブロックしそうなシステムコールの前にブロックするかど | >うかのチェックをいれてます.で,ブロックしないことが保証され | >てる時だけシステムコールを呼んでます. | |Socket のオープンとか、gethost... とかって事前にチェックは可能 |なんですか? socket(2)はブロックしないはずのシステムコールです.accept(2) は可能です.ext/socket.cを見ると分かるかもしれません.しかし, gethostbyname(3)などは場合によってはブロックしますが,これは 検出できませんね. |Perl や Python も外部の拡張モジュールを呼んだ瞬間に thread-safe |は怪しくなるんでしょうね。 ま,そーゆーことです.ことほどさようにthreadというのは面倒な ものですが,rubyのスレッドはユーザレベルならではの安全性を提 供しようとしています.が,効率ははっきり言って悪いです. # 実用上は十分なことが多いけどね まつもと ゆきひろ /:|)