On Wed, Jan 05, 2005 at 08:30:09AM +0900, William Morgan <wmorgan-ruby-talk / masanjin.net> wrote:
> Excerpts from Lucas Nussbaum's mail of  4 Jan 2005 (EST):
> > Ruby hangs on IO.read("/proc/uptime").
> 
> This is probably the same issue described in:
> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/109668
> http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/110600

true

> The upshot is that certain files in /proc/ seem to hang on a select()
> call, which Ruby uses for I/O within threads. You can do an strace and
> watch the difference between doing this from within and from without a
> Thread.
> 
> My workaround was something along the lines of:
>   system "cat /proc/#{file} > #{tmpfile}"
>   f = File.open tmpfile
> 
> I don't know that there's a better solution.

IO.popen("/bin/cat /proc/uptime")

But still, that's not very satisfying ...
-- 
| Lucas Nussbaum
| lucas / lucas-nussbaum.net    lnu / gnu.org    GPG: 1024D/023B3F4F |
| jabber: lucas / linux.ensimag.fr   http://www.lucas-nussbaum.net |
| fingerprint: 075D 010B 80C3 AC68 BD4F B328 DA19 6237 023B 3F4F |