[#45085] [ruby-trunk - Feature #5839][Open] Proposal: Bitmap Marking GC — Narihiro Nakamura <authorNari@...>
11 messages
2012/01/04
[#45086] Re: [ruby-trunk - Feature #5839][Open] Proposal: Bitmap Marking GC
— SASADA Koichi <ko1@...>
2012/01/04
ささだです.
[#45087] Re: [ruby-trunk - Feature #5839][Open] Proposal: Bitmap Marking GC
— Yukihiro Matsumoto <matz@...>
2012/01/04
まつもと ゆきひろです
[#45088] Re: [ruby-trunk - Feature #5839][Open] Proposal: Bitmap Marking GC
— SASADA Koichi <ko1@...>
2012/01/04
ささだです.
[#45089] Re: [ruby-trunk - Feature #5839][Open] Proposal: Bitmap Marking GC
— Narihiro Nakamura <authornari@...>
2012/01/05
nariです。
[#45090] Re: [ruby-trunk - Feature #5839][Open] Proposal: Bitmap Marking GC
— SASADA Koichi <ko1@...>
2012/01/05
ささだです.
[#45110] [ruby-trunk - Feature #5861][Assigned] String#version_compare — Yui NARUSE <naruse@...>
5 messages
2012/01/07
[#45135] [ruby-trunk - Bug #5896][Open] object representaion in rb_enc_vsprintf() — Nobuyoshi Nakada <nobu@...>
6 messages
2012/01/15
[ruby-dev:45161] [ruby-trunk - Bug #5952] コマンドラインモードで CGI.new を 2 回実行すると IOError が発生する
From:
Tomoyuki Chikanaga <nagachika00@...>
Date:
2012-01-31 14:34:11 UTC
List:
ruby-dev #45161
Issue #5952 has been updated by Tomoyuki Chikanaga.
Category set to core
r29781 以降 Kernel#readlines (ARGF.readlines) で EOF を検出すると stdin を close するようになっていたようです。以下のようなサンプルで現象を確認できます。
readlines.rb:
p STDIN.closed? # => false
p readlines # => [] <- Ctrl-D で EOF を送出
p STDIN.closed? # => true
p readlines # => [] <- すぐにかえってくる
1.9.2 では最後の STDIN.closed? は false のままで、2度目の readlines は入力を待ちます。
ARGF.current_file が標準入力だったら close しないようにするととりあえずこの現象は直りました。これでどうでしょう。
diff --git a/io.c b/io.c
index a3a45c0..e877f13 100644
--- a/io.c
+++ b/io.c
@@ -7684,7 +7684,8 @@ argf_readlines(int argc, VALUE *argv, VALUE argf)
}
else {
lines = rb_io_readlines(argc, argv, ARGF.current_file);
- argf_close(ARGF.current_file);
+ if ( ARGF.current_file != rb_stdin )
+ argf_close(ARGF.current_file);
}
ARGF.next_p = 1;
rb_ary_concat(ary, lines);
----------------------------------------
Bug #5952: コマンドラインモードで CGI.new を 2 回実行すると IOError が発生する
https://bugs.ruby-lang.org/issues/5952
Author: Hiroshi SHIBATA
Status: Open
Priority: Normal
Assignee:
Category: core
Target version: 1.9.3
ruby -v: ruby 1.9.3p28 (2012-01-28 revision 34386) [x86_64-darwin11.2.0]
=begin
1.9.3p28, trunk で以下のスクリプトを実行すると2回目の CGI.new で パラメータを受け取る時に IOError が発生します。
% cat cli.rb
require 'cgi'
CGI.new
CGI.new
% ruby cli.rb
(offline mode: enter name=value pairs on standard input)
/Users/hsbt/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/cgi/core.rb:595:in `tty?': closed stream (IOError)
from /Users/hsbt/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/cgi/core.rb:595:in `read_from_cmdline'
from /Users/hsbt/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/cgi/core.rb:645:in `initialize_query'
from /Users/hsbt/.rbenv/versions/2.0.0-dev/lib/ruby/2.0.0/cgi/core.rb:806:in `initialize'
from cli.rb:4:in `new'
from cli.rb:4:in `<main>'
1.9.2p290 や 1.8.7p357 ではエラーなく2回パラメータを入力可能です。
=end
--
http://bugs.ruby-lang.org/