From: "Idan Sofer" <idan / idanso.dyndns.org> > Bill Kelly wrote: > > >I prefer to use select() than threads, for a couple reasons, in Ruby. > >My sense is that, since the whole process is blocked (all your threads) > >if one of your IO calls stalls (in any thread), then you have to find > >a way to do non-blocking IO whether you're using threads or not. And I > >personally find select() to be sufficient to the task without bothering > >with threads. (It may just be personal opinion, or preference. :) > > > > > I have not encountered such situation when using threads. > > My application have a set of worker threads, which either serve a > client, waiting on a Mutex protecting accept(), or waiting at accept(), > so there is always one thread waiting on accept(), and the application > does not block. > > I suppose Ruby does some tricks to overcome the blocking. Whoa. Interesting. Well, my apologies if my post was incorrect. I've read accounts on ruby-talk in the past of the whole process (all Ruby-threads) being blocked during IO. I had taken this to mean this was the general case, rather than some specific exception being discussed. Hmm, it's nice when Ruby is smarter than me (seems to keep happening :) In my particular application, avoiding threads still seems convenient, as I can disregard reentrancy issues. Thanks, Bill