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

ruby-changes:30966

From: nobu <ko1@a...>
Date: Thu, 26 Sep 2013 11:31:35 +0900 (JST)
Subject: [ruby-changes:30966] nobu:r43045 (trunk): gc.c: atomical add

nobu	2013-09-26 11:31:26 +0900 (Thu, 26 Sep 2013)

  New Revision: 43045

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

  Log:
    gc.c: atomical add
    
    * gc.c (gc_before_sweep, gc_after_sweep): add to increase2 atomically.
    
    * gc.c (gc_marks): adjust indent.

  Modified files:
    trunk/gc.c
Index: gc.c
===================================================================
--- gc.c	(revision 43044)
+++ gc.c	(revision 43045)
@@ -2362,7 +2362,7 @@ gc_before_sweep(rb_objspace_t *objspace) https://github.com/ruby/ruby/blob/trunk/gc.c#L2362
     }
     objspace->freelist = NULL;
 
-    malloc_increase2 += ATOMIC_SIZE_EXCHANGE(malloc_increase,0);
+    ATOMIC_SIZE_ADD(malloc_increase2, ATOMIC_SIZE_EXCHANGE(malloc_increase, 0));
 
     /* sweep unlinked method entries */
     if (GET_VM()->unlinked_method_entry_list) {
@@ -2394,8 +2394,7 @@ gc_after_sweep(rb_objspace_t *objspace) https://github.com/ruby/ruby/blob/trunk/gc.c#L2394
     gc_prof_set_heap_info(objspace);
 
     inc = ATOMIC_SIZE_EXCHANGE(malloc_increase, 0);
-    inc += malloc_increase2;
-    malloc_increase2 = 0;
+    inc += ATOMIC_SIZE_EXCHANGE(malloc_increase2, 0);
 
     if (inc > malloc_limit) {
 	malloc_limit +=
@@ -3670,10 +3669,10 @@ gc_marks(rb_objspace_t *objspace, int mi https://github.com/ruby/ruby/blob/trunk/gc.c#L3669
 	}
 
 #if RGENGC_PROFILE > 0
-    if (gc_prof_record(objspace)) {
-	gc_profile_record *record = gc_prof_record(objspace);
-	record->oldgen_objects = objspace->rgengc.oldgen_object_count;
-    }
+	if (gc_prof_record(objspace)) {
+	    gc_profile_record *record = gc_prof_record(objspace);
+	    record->oldgen_objects = objspace->rgengc.oldgen_object_count;
+	}
 #endif
 
 #else /* USE_RGENGC */

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

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