aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-19 06:11:09 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-19 06:11:09 +0000
commit344835a754a832b00d66b7a714b86d04b0778b44 (patch)
tree4f672d8c949c64ea8f7c7206da2bc9bd73e0fde2
parent8e5374d05a9cddc11ef8871eb34bb59109fa272a (diff)
downloadruby-344835a754a832b00d66b7a714b86d04b0778b44.tar.gz
* gc.c, internal.h (rb_gc_writebarrier_remember_promoted): add a new
function to remember an specified object. This api is only experimental (strongly depend on WB/rgengc strategy). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--gc.c7
-rw-r--r--internal.h1
3 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index f637f5b0f7..b93b5dda2e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Fri Jul 19 15:09:22 2013 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c, internal.h (rb_gc_writebarrier_remember_promoted): add a new
+ function to remember an specified object. This api is only
+ experimental (strongly depend on WB/rgengc strategy).
+
Fri Jul 19 14:56:00 2013 Koichi Sasada <ko1@atdot.net>
* array.c (ary_unprotect_logging): use (void *) for first parameter
diff --git a/gc.c b/gc.c
index 6543821ba1..e83bff302a 100644
--- a/gc.c
+++ b/gc.c
@@ -3894,6 +3894,13 @@ rb_gc_writebarrier_unprotect_promoted(VALUE obj)
#endif
}
+void
+rb_gc_writebarrier_remember_promoted(VALUE obj)
+{
+ rb_objspace_t *objspace = &rb_objspace;
+ rgengc_remember(objspace, obj);
+}
+
#endif /* USE_RGENGC */
/* RGENGC analysis information */
diff --git a/internal.h b/internal.h
index 05a59253a5..e9f8cb03ae 100644
--- a/internal.h
+++ b/internal.h
@@ -278,6 +278,7 @@ void rb_w32_init_file(void);
void Init_heap(void);
void *ruby_mimmalloc(size_t size);
void rb_objspace_set_event_hook(const rb_event_flag_t event);
+void rb_gc_writebarrier_remember_promoted(VALUE obj);
/* hash.c */
struct st_table *rb_hash_tbl_raw(VALUE hash);