[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

C-like ugliness of Kernel#select

C Erler

6/28/2005 6:17:00 PM

IO has such methods as #closed? and #eof? to find much-needed information
about IO status, but it doesn't have anything like #read_ready? or
#write_ready? that would be useful for anyone not wanting blocking IO. The
only way to do this is with the C-like ugly-hackishness that is
Kernel#select.

Does anyone have a good argument for not adding a few more methods to IO in
the Ruby distribution itself ? Does anybody think it would be a good idea to
submit this as an RCR ? If those are added, would we be able to remove
Kernel#select in the next "we don't care about backward compatibility" Ruby
version ?
3 Answers

Jacob Fugal

6/28/2005 6:36:00 PM

0

On 6/28/05, C Erler <erlercw@gmail.com> wrote:
> IO has such methods as #closed? and #eof? to find much-needed information
> about IO status, but it doesn't have anything like #read_ready? or
> #write_ready? that would be useful for anyone not wanting blocking IO. The
> only way to do this is with the C-like ugly-hackishness that is
> Kernel#select.
>
> Does anyone have a good argument for not adding a few more methods to IO
> in the Ruby distribution itself ?

Not me.

> Does anybody think it would be a good idea to submit this as an RCR ?

Go ahead. After submitting it, announce the RCR in ruby-core as well
and let the vote decide. Myself, I'm for adding a few convenience
methods as a wrapper to specific select calls.

> If those are added, would we be able to remove Kernel#select in the next
> "we don't care about backward compatibility" Ruby version ?

I wouldn't go that far. As I said above, I would probably implement
the convenience methods as wrappers to select, unless performance
issues were to require a lower level implementation. And leaving
access to the unwrapped select would be nearly essential to many
useful libraries.

Jacob Fugal


Guillaume Marcais

6/28/2005 6:49:00 PM

0

On Wed, 2005-06-29 at 03:16 +0900, C Erler wrote:
> IO has such methods as #closed? and #eof? to find much-needed information
> about IO status, but it doesn't have anything like #read_ready? or
> #write_ready? that would be useful for anyone not wanting blocking IO. The
> only way to do this is with the C-like ugly-hackishness that is
> Kernel#select.

Look in RAA for io-wait.

> Does anyone have a good argument for not adding a few more methods to IO in
> the Ruby distribution itself ? Does anybody think it would be a good idea to
> submit this as an RCR ?

It could be useful.

> If those are added, would we be able to remove
> Kernel#select in the next "we don't care about backward compatibility" Ruby
> version ?

No. Kernel#select would still be useful to wait on many IO streams at
once.

Guillaume.



Ara.T.Howard

6/28/2005 8:55:00 PM

0