From: "U.Nakamura" Date: 2004-12-08T09:35:56+09:00 Subject: [ruby-dev:25110] pipe on win32 (Re: non-stdio buffering) こんにちは、なかむら(う)です。 In message "[ruby-dev:25101] non-stdio buffering" on Dec.07,2004 20:09:20, wrote: | しかし、これには問題もあって、Windows には socketpair がないため、 | Windows では双方向 popen が動かないようになってしまいました。 | | ただ、Windows でも TCP で (無理矢理) socketpair のようなものを実装す | ることは可能なので、それが実装されたときには双方向 popen も復活する | のではないかと想像しています。 昨晩、この方向で、Win32版での双方向パイプを復活させました。 # まだおかしいところがあるかもしれませんが。 | なお、Windows で socketpair を実現すると、これはパイプと違って | select が効くので、timeout が効き、readpartial のテストが刺さるのを | 解決する糸口になるかもしれないなどの可能性があります。 単方向パイプ、および、IO#pipeは以前のままなので、実はこのあた りはなーんも変わってないのですが、これらも全部socketpairモド キに置き換えるという選択肢もありかなあ、とか思ったりもしてい ます。 パイプがselectで止まらなくなると、あとはコンソールについては WinSock2を必須とすれば対応は可能であると考えられているので、 Win32版でselectで刺さる系の問題があらかた解決する、かもしれま せん。 それでは。 -- U.Nakamura