Hi (back on the list),
I have a program that needs IO#read to be fast. I found out that IO#read
uses C’s getc() instead of fread(). This is several times slower than
fread(), as I tried it. However, I think my solution would not work with
Ruby threads. Is there a way to use fread() to get sensible amounts of
data without fear of blocking?
If there is a problem with READ_DATA_PENDING, then another way Ruby IO
could work is by permanently setting the non-blocking flag on all open
filehandles, and then fake the rest to Ruby programs.
What do you think?
Mathieu Bouchard http://artengine.ca/matju