From: "U.Nakamura" Date: 2005-09-15T11:12:14+09:00 Subject: [ruby-dev:27078] console pipe support on native Win32 こんにちは、なかむら(う)です。 In message "[ruby-dev:27077] select pipe support on native Win32" on Sep.14,2005 23:35:57, wrote: | CVS trunk HEADに、native Win32なportでpipeのselectを可能とす | るコードを入れてみました。 consoleのselectも可能になることがあるコードも入れてみました。 Thread.new { loop { puts "thread" sleep 1 } } loop { p gets } のようなコードが、一見動いてるように見えるかもしれません。 これらのコードの既知の問題点は以下の通りです。 (1) pipe、consoleとも、書き込みは常に可能であるとみなしている。 consoleはたぶんそれでよいが、pipeは2048バイトほど連続して 書き込むとそこでブロックする。要修正。 (2) consoleに関しては、入力待ちに対して改行文字以外を入力した 場合、改行文字が入力されるまで他のスレッドはブロックされる。 これはCygwin版も同様で、Rubyのスレッドをネイティブスレッド にマッピングしない限りたぶん解決不能。 (3) Win9xではほとんどテストしてない。 WindowsMeでちょびっとだけ動かしたけど、動くような気がする ことを確認した程度。 みなさま、気が向いたら弄ったり修正したりしてください。 それでは。 -- U.Nakamura