[#42564] [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Makoto Kishimoto <redmine@...>

Feature #4043: =E3=82=B0=E3=83=AD=E3=83=BC=E3=83=90=E3=83=AB=E9=96=A2=E6=95=

15 messages 2010/11/11
[#42774] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/16

まつもと ゆきひろです

[#42834] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp> 2010/12/21

きしもとです

[#42835] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/21

まつもと ゆきひろです

[#42838] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp> 2010/12/21

きしもとです

[#42845] Re: [Ruby 1.9-Feature#4043][Open] グローバル関数current_classの提案 — Yukihiro Matsumoto <matz@...> 2010/12/21

まつもと ゆきひろです

[#42577] Rubyのバグレポートのガイドライン — "Shota Fukumori (sora_h)" <sorah@...>

sora_hです。

11 messages 2010/11/15
[#42588] Re: Rubyのバグレポートのガイドライン — Yugui <yugui@...> 2010/11/18

2010/11/15 Shota Fukumori (sora_h) <sorah@tubusu.net>:

[#42638] Enumerable#categorize — Tanaka Akira <akr@...>

enumerable から hash を生成するメソッドとして

25 messages 2010/11/27
[#42643] Re: Enumerable#categorize — Yukihiro Matsumoto <matz@...> 2010/11/27

まつもと ゆきひろです

[ruby-dev:42524] [Ruby 1.9-Bug#4020][Open] Fiber#initialize causes memory leaks

From: Yusuke Endoh <redmine@...>
Date: 2010-11-03 16:01:23 UTC
List: ruby-dev #42524
Bug #4020: Fiber#initialize causes memory leaks
http://redmine.ruby-lang.org/issues/show/4020

起票者: Yusuke Endoh
ステータス: Open, 優先度: Normal
カテゴリ: core
ruby -v: ruby 1.9.3dev (2010-11-03 trunk 29679) [i686-linux]

遠藤です。

Fiber#initialize を複数回呼ぶとメモリリークします。

  f = Fiber.new {}
  loop { f.send(:initialize) { } }  #=> メモリ無限消費


diff --git a/cont.c b/cont.c
index b0b3f41..56ae843 100644
--- a/cont.c
+++ b/cont.c
@@ -971,6 +971,10 @@ fiber_t_alloc(VALUE fibval)
     rb_fiber_t *fib;
     rb_thread_t *th = GET_THREAD();
 
+    if (DATA_PTR(fibval) != 0) {
+	rb_raise(rb_eRuntimeError, "cannot initialize twice");
+    }
+
     THREAD_MUST_BE_RUNNING(th);
     fib = ALLOC(rb_fiber_t);
     memset(fib, 0, sizeof(rb_fiber_t));

-- 
Yusuke Endoh <mame@tsg.ne.jp>


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next