On Wed, Jul 25, 2001 at 05:22:39PM +0200, Arthur Bergman wrote:
> 01-07-25 17.19, skrev Rocco Caputo p� [EMAIL PROTECTED] f�ljande:
>
> > These tests all use Pipe::(One|Two)Way, so maybe the pipe's returning
> > something which select() won't work on. Looking into the pipe
> > constructors, they try socketpair() on Windows systems. Perhaps
>
> Pipes on windows, and filehandles to files using OPEN, cannot be
> selected on.
Understood. On systems that can handle it, Pipe::TwoWay tries
socketpair(), pipe() and finally IO::Socket::INET if the other two
fail. On Windows, it skipped pipe() because that doesn't work.
My guess is that socketpair() is "working" but returning filehandles
which aren't actually sockets, so select() fails with a bad file
descriptor later on. I've worked around the problem by also skipping
socketpair() on Windows.
I can back out the change if that doesn't fix it, but all the "bad
file descriptor" failures did coincide with Pipe::(One|Two)Way, so
it's probably something to do with them.
-- Rocco Caputo / [EMAIL PROTECTED] / poe.perl.org / poe.sourceforge.net