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

ruby-changes:4834

From: ko1@a...
Date: Thu, 8 May 2008 15:59:24 +0900 (JST)
Subject: [ruby-changes:4834] akr - Ruby:r16328 (trunk): * thread.c (rb_gc_save_machine_context): call FLUSH_REGISTER_WINDOWS

akr	2008-05-08 15:59:03 +0900 (Thu, 08 May 2008)

  New Revision: 16328

  Modified files:
    trunk/ChangeLog
    trunk/bootstraptest/test_thread.rb
    trunk/thread.c

  Log:
    * thread.c (rb_gc_save_machine_context): call FLUSH_REGISTER_WINDOWS
      to mark the register stack from GC on another thread.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=16328&r2=16327&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/thread.c?r1=16328&r2=16327&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/bootstraptest/test_thread.rb?r1=16328&r2=16327&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 16327)
+++ ChangeLog	(revision 16328)
@@ -1,3 +1,8 @@
+Thu May  8 15:36:11 2008  Tanaka Akira  <akr@f...>
+
+	* thread.c (rb_gc_save_machine_context): call FLUSH_REGISTER_WINDOWS
+	  to mark the register stack from GC on another thread.
+
 Thu May  8 15:14:34 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* array.c (rb_ary_sort_bang): freeze temporary array.
Index: bootstraptest/test_thread.rb
===================================================================
--- bootstraptest/test_thread.rb	(revision 16327)
+++ bootstraptest/test_thread.rb	(revision 16328)
@@ -234,3 +234,15 @@
   STDERR.reopen(STDOUT)
   exec "/"
 }
+
+assert_normal_exit %q{
+  (0..10).map {
+    Thread.new {
+     10000.times {
+        Object.new.to_s
+      }
+    }
+  }.each {|t|
+    t.join
+  }
+}
Index: thread.c
===================================================================
--- thread.c	(revision 16327)
+++ thread.c	(revision 16328)
@@ -1966,6 +1966,7 @@
 rb_gc_save_machine_context(rb_thread_t *th)
 {
     SET_MACHINE_STACK_END(&th->machine_stack_end);
+    FLUSH_REGISTER_WINDOWS;
 #ifdef __ia64
     th->machine_register_stack_end = rb_ia64_bsp();
 #endif

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

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