Bug #4020: Fiber#initialize causes memory leaks
http://redmine.ruby-lang.org/issues/show/4020
$B5/I<<T(B: Yusuke E.
$B%9%F!<%?%9(B: Open, $BM%@john(B: Normal
$B%+%F%4%j(B: core
ruby -v: ruby 1.9.3dev (2010-11-03 trunk 29679) [i686-linux]
$B1sF#$G$9!#(B
Fiber#initialize $B$rJ#?t2s8F$V$H%a%b%j%j!<%/$7$^$9!#(B
f = Fiber.new {}
loop { f.send(:initialize) { } } #=> $B%a%b%jL58B>CHq(B
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 E. [email protected]