Select([]) method

Hey all
  I cam across a new method:
select([], [], [], [])
where the objects in the select parentheses are arrays.

But what does this exactly do? I could not find ANY documentation on it. The original code is:

ready = select([@irc, $stdin], nil, nil, nil)

Any help please?
ari
-------------------------------------------------------|
~ Ari
crap my sig won't fit

$ ri select
More than one method matched your request. You can refine
your search by asking for information on one of:

      Array#select, Enumerable#select, Hash#select, IO::select,
      IRB::InputCompletor::select_message, Kernel#select,
      MatchData#select, Net::IMAP#select, Struct#select,
      URI::Generic#select, YAML::BaseNode#select!, YAML::BaseNode#select,
      YAML::DBM#select

I think you're talking about IO::select:

$ ri IO::select
------------------------------------------------------------- IO::select
      IO.select(read_array
      [, write_array
      [, error_array
      [, timeout]]] ) => array or nil

···

On May 30, 2007, at 7:34 PM, Ari Brown wrote:

  I cam across a new method:
select(, , , )
where the objects in the select parentheses are arrays.

But what does this exactly do? I could not find ANY documentation on it. The original code is:

------------------------------------------------------------------------

It looks like you're using Mac OS X, so try doing "man select" from the Terminal for information on the underlying select() function in the OS.

-Mark

Kernel#select is very poorly documented in ri. Try this instead:

http://www.rubycentral.com/book/ref_m_kernel.html#Kernel.select

···

On Thu, May 31, 2007 at 11:34:57AM +0900, Ari Brown wrote:

Hey all
  I cam across a new method:
select(, , , )
where the objects in the select parentheses are arrays.

But what does this exactly do? I could not find ANY documentation on
it. The original code is:

ready = select([@irc, $stdin], nil, nil, nil)

Any help please?

it's just wraper for c / linux select
you can try man select if you have libc documentation

···

On Thursday 31 May 2007 02:34, Ari Brown wrote:

Hey all
  I cam across a new method:
select(, , , )
where the objects in the select parentheses are arrays.

But what does this exactly do? I could not find ANY documentation on
it. The original code is:

ready = select([@irc, $stdin], nil, nil, nil)

Any help please?
ari
-------------------------------------------------------|
~ Ari
crap my sig won't fit

--
Marcin Raczkowski
---
Friends teach what you should know
Enemies Teach what you have to know

I agree with other comments, the documentation for select is pretty bad.

The most simple way to use it is like this:

svrs = IO.select([my_fd], nil, nil, 0)
svrs[0].each { |io| puts io.readline }

···

On 5/31/07, Ari Brown <ari@aribrown.com> wrote:

Hey all
        I cam across a new method:
select(, , , )
where the objects in the select parentheses are arrays.

But what does this exactly do? I could not find ANY documentation on
it. The original code is:

ready = select([@irc, $stdin], nil, nil, nil)

--
Felipe Contreras

In a nutshell, select() is a system call for use when you have
multiple IO events pending, and you want to handle the first one that
occurs. So for instance if you have three network connections, and
you need wait until data comes in on one of them, you could use
select().

···

--
Avdi

Alright, thanks everyone! This really cleared it up, and now i learned like 800 new things about ruby. BTW, the link that was tossed was definitely a great link. Thanks!

ari
--------------------------------------------|
If you're not living on the edge,
then you're just wasting space.

···

On May 31, 2007, at 10:12 AM, Felipe Contreras wrote:

On 5/31/07, Ari Brown <ari@aribrown.com> wrote:

Hey all
        I cam across a new method:
select(, , , )
where the objects in the select parentheses are arrays.

But what does this exactly do? I could not find ANY documentation on
it. The original code is:

ready = select([@irc, $stdin], nil, nil, nil)

I agree with other comments, the documentation for select is pretty bad.

The most simple way to use it is like this:

svrs = IO.select([my_fd], nil, nil, 0)
svrs[0].each { |io| puts io.readline }