diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-19 06:11:09 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-07-19 06:11:09 +0000 |
commit | 344835a754a832b00d66b7a714b86d04b0778b44 (patch) | |
tree | 4f672d8c949c64ea8f7c7206da2bc9bd73e0fde2 | |
parent | 8e5374d05a9cddc11ef8871eb34bb59109fa272a (diff) | |
download | ruby-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-- | ChangeLog | 6 | ||||
-rw-r--r-- | gc.c | 7 | ||||
-rw-r--r-- | internal.h | 1 |
3 files changed, 14 insertions, 0 deletions
@@ -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 @@ -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); |