diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-09-20 07:52:25 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-09-20 07:52:25 +0000 |
commit | 4248291d43f6f29064d746b3b1e8fcc82ac0d018 (patch) | |
tree | c6dc747b7860b49e142599861b32d00a155df167 /gc.c | |
parent | 080ffbcfc47b4d59922aaf857ef88cd0b4ab2cfd (diff) | |
download | ruby-4248291d43f6f29064d746b3b1e8fcc82ac0d018.tar.gz |
gc.c: rb_gc_adjust_memory_usage
* gc.c (rb_gc_adjust_memory_usage): notify memory usage to the GC
engine by extension libraries, to trigger GC. [Feature #12690]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -8096,6 +8096,18 @@ gc_malloc_allocations(VALUE self) } #endif +void +rb_gc_adjust_memory_usage(ssize_t diff) +{ + rb_objspace_t *objspace = &rb_objspace; + if (diff > 0) { + objspace_malloc_increase(objspace, 0, diff, 0, MEMOP_TYPE_REALLOC); + } + else if (diff < 0) { + objspace_malloc_increase(objspace, 0, 0, -diff, MEMOP_TYPE_REALLOC); + } +} + /* ------------------------------ WeakMap ------------------------------ */ |