[前][次][番号順一覧][スレッド一覧]

ruby-changes:21319

From: nagachika <ko1@a...>
Date: Sat, 1 Oct 2011 10:00:51 +0900 (JST)
Subject: [ruby-changes:21319] nagachika:r33368 (trunk): * gc.c (add_heap_slots, init_heap): reset heaps_inc zero when

nagachika	2011-10-01 10:00:40 +0900 (Sat, 01 Oct 2011)

  New Revision: 33368

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33368

  Log:
    * gc.c (add_heap_slots, init_heap): reset heaps_inc zero when
      heap slots are expanded by environment variable RUBY_HEAP_MIN_SLOTS.
      [ruby-core:39777] [Bug #5380]
    
    * test/ruby/test_gc.rb (test_gc_parameter): add test for it.
    
    * test/ruby/envutil.rb (assert_normal_exit): add :child_env option to
      enable pass environemnt variables to child process.

  Modified files:
    trunk/ChangeLog
    trunk/gc.c
    trunk/test/ruby/envutil.rb
    trunk/test/ruby/test_gc.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 33367)
+++ ChangeLog	(revision 33368)
@@ -1,3 +1,14 @@
+Sat Oct  1 09:48:53 2011  CHIKANAGA Tomoyuki  <nagachika00@g...>
+
+	* gc.c (add_heap_slots, init_heap): reset heaps_inc zero when
+	  heap slots are expanded by environment variable RUBY_HEAP_MIN_SLOTS.
+	  [ruby-core:39777] [Bug #5380]
+
+	* test/ruby/test_gc.rb (test_gc_parameter): add test for it.
+
+	* test/ruby/envutil.rb (assert_normal_exit): add :child_env option to
+	  enable pass environemnt variables to child process.
+
 Thu Sep 29 13:17:51 2011  Nobuyoshi Nakada  <nobu@r...>
 
 	* array.c (ary_join_1): should not copy the encoding of non-string
Index: gc.c
===================================================================
--- gc.c	(revision 33367)
+++ gc.c	(revision 33368)
@@ -1090,6 +1090,7 @@
     for (i = 0; i < add; i++) {
         assign_heap_slot(objspace);
     }
+    heaps_inc = 0;
 }
 
 static void
@@ -1106,7 +1107,6 @@
     }
 #endif
 
-    heaps_inc = 0;
     objspace->profile.invoke_time = getrusage_time();
     finalizer_table = st_init_numtable();
 }
Index: test/ruby/test_gc.rb
===================================================================
--- test/ruby/test_gc.rb	(revision 33367)
+++ test/ruby/test_gc.rb	(revision 33368)
@@ -1,5 +1,7 @@
 require 'test/unit'
 
+require_relative "envutil"
+
 class TestGc < Test::Unit::TestCase
   class S
     def initialize(a)
@@ -78,4 +80,12 @@
   ensure
     GC.stress = prev_stress
   end
+
+  def test_gc_parameter
+    env = {
+      "RUBY_GC_MALLOC_LIMIT" => "60000000",
+      "RUBY_HEAP_MIN_SLOTS" => "100000"
+    }
+    assert_normal_exit("1", "[ruby-core:39777]", :child_env => env)
+  end
 end
Index: test/ruby/envutil.rb
===================================================================
--- test/ruby/envutil.rb	(revision 33367)
+++ test/ruby/envutil.rb	(revision 33368)
@@ -122,7 +122,13 @@
     module Assertions
       public
       def assert_normal_exit(testsrc, message = '', opt = {})
-        out, _, status = EnvUtil.invoke_ruby(%W'-W0', testsrc, true, :merge_to_stdout, opt)
+        if opt.include?(:child_env)
+          opt = opt.dup
+          child_env = [opt.delete(:child_env)] || []
+        else
+          child_env = []
+        end
+        out, _, status = EnvUtil.invoke_ruby(child_env + %W'-W0', testsrc, true, :merge_to_stdout, opt)
         pid = status.pid
         faildesc = proc do
           signo = status.termsig

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]