[#24536] 「Rubyの落し方」 v.s. ruby_1_8 — akira yamada / やまだあきら <akira@...>

<URL:http://jp.rubyist.net/magazine/?0002-RubyCore>

40 messages 2004/10/20
[#24541] Re: 「Rubyの落し方」 v.s. ruby_1_8 — Yukihiro Matsumoto <matz@...> 2004/10/20

まつもと ゆきひろです

[#24599] 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/26

2004-10-20 (水) の 21:38 +0900 に Yukihiro Matsumoto さんは書きました:

[#24605] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-26 (火) の 16:16 +0900 に akira yamada / やまだあきら さんは書きました:

[#24606] Re: 1.8.2 preview3? — Yukihiro Matsumoto <matz@...> 2004/10/27

まつもと ゆきひろです

[#24608] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 11:48 +0900 に Yukihiro Matsumoto さんは書きました:

[#24620] Re: 1.8.2 preview3? — akira yamada / やまだあきら <akira@...> 2004/10/27

2004-10-27 (水) の 12:42 +0900 に akira yamada / やまだあきら さんは書きました:

[#24629] Re: 1.8.2 preview3? — Tanaka Akira <akr@...17n.org> 2004/10/29

In article <1098888819.9446.14.camel@rice.p.arika.org>,

[ruby-dev:24457] IO#read blocks without thread context switch

From: Tanaka Akira <akr@...17n.org>
Date: 2004-10-08 15:29:39 UTC
List: ruby-dev #24457
ruby 1.9 だと次のスクリプトがブロックしてしまいます。

% ./ruby -vde '
r, w = IO.pipe
Thread.new {
  w.puts "abc"
  w.close
}
p r.read
'
ruby 1.9.0 (2004-10-08) [i686-linux]

% ./ruby -d -e '
r, w = IO.pipe
Thread.new {
  w.puts "abc"       
  w.close
}
p r.read
'

1.8 ではブロックしません。

% ./ruby -vde '
r, w = IO.pipe
Thread.new {
  w.puts "abc"
  w.close
}
p r.read
'
ruby 1.8.2 (2004-10-08) [i686-linux]
"abc\n"

調べてみると、[ruby-dev:23248] (をベースにした [ruby-dev:24055]) で
rb_thread_wait_fd が消えていたためのようです。

Index: io.c
===================================================================
RCS file: /src/ruby/io.c,v
retrieving revision 1.301
diff -u -p -r1.301 io.c
--- io.c	7 Oct 2004 05:54:28 -0000	1.301
+++ io.c	8 Oct 2004 15:25:39 -0000
@@ -941,6 +941,7 @@ rb_io_fread(ptr, len, f)
 	    ptr += c;
 	    if ((n -= c) <= 0) break;
 	}
+        rb_thread_wait_fd(fileno(f));
 	TRAP_BEG;
 	c = getc(f);
 	TRAP_END;
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next