aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);