Nonblock extension for win32?

It was never released as a separate package on the RAA. It was a patch
provided by Jean-Francois Nadeau. See ruby-core:3154.

I believe it was merged into CVS already. So, you can either try
building the latest CVS version, or manually apply that patch and
rebuild.

At least, I *think* this patch will fix your problem.

Regards,

Dan

···

-----Original Message-----
From: Bill Kelly [mailto:billk@cts.com]
Sent: Friday, March 11, 2005 12:55 PM
To: ruby-talk ML
Subject: nonblock extension for win32?

Howdy,

I recall reading that an extension was available for
win32 to provide nonblocking IO support. I've searched
RAA but nothing turned up that sounded quite like what
I thought I remembered reading about.

Is there such a beast? Does it work with pipes?

One of my applications has an unusable feature on windows
at present, because I need a nonblocking way to read from
a pipe returned from popen(). Is there any nonblocking
way to accomplish this in win32 ruby?

Thanks for any help,

Regards,

Bill

>
> From: Bill Kelly [mailto:billk@cts.com]
>
> I recall reading that an extension was available for
> win32 to provide nonblocking IO support. I've searched
> RAA but nothing turned up that sounded quite like what
> I thought I remembered reading about.
>
> Is there such a beast? Does it work with pipes?

It was never released as a separate package on the RAA. It was a patch
provided by Jean-Francois Nadeau. See ruby-core:3154.

I believe it was merged into CVS already. So, you can either try
building the latest CVS version, or manually apply that patch and
rebuild.

Thanks, . . . Hmm, it seems the last message in the thread
is from Jean-Francois, asking, "What's the status of this patch?"

In any case it *appears* to be a patch that works only for
sockets (which is also useful to me) but not for pipes.

Grrrrr.......... DAMN YOU BILL GATES !!!!!!!!! !!!!! !!!!!!!

Uh, anyway.... :-/

There must be *some* way to do a non-blocking pipe read
on windows...??? (I saw Nobu's io-wait module on RAA,
that would add a #ready? method. Even that might help;
although I don't know if io-wait works on Windows or not.
The download link seems to be broken...)

...I guess I can redesign these parts of my app to use
sockets instead of pipes... It seems to be either that
or hire a small army and find a time machine and go back
to 1980 and force M$FT to adopt a non-crappy kernel
design?

BTW - any win32 gurus know if it's *theoretically* possible
to do a non-blocking pipe read, i.e. on file handle returned
by popen(), even if ruby doesn't support it?

Thanks,

Bill

···

From: "Berger, Daniel" <Daniel.Berger@qwest.com>