From 344835a754a832b00d66b7a714b86d04b0778b44 Mon Sep 17 00:00:00 2001 From: ko1 Date: Fri, 19 Jul 2013 06:11:09 +0000 Subject: [PATCH] * 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 --- ChangeLog | 6 ++++++ gc.c | 7 +++++++ internal.h | 1 + 3 files changed, 14 insertions(+) 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 + + * 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 * 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);