diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-10-22 10:28:31 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-10-22 10:28:31 +0000 |
commit | d6fe84b6f3694211ec7b6746c02018cb04a82a86 (patch) | |
tree | 5fc94075abb4af6ceb156c36fb1e4a066ce3ecae /vm_core.h | |
parent | 4292fd7798b6fe31aec8dd2da9c8acab1f2bb518 (diff) |
* gc.c: allow multiple heaps.
Now, objects are managed by page. And a set of pages is called heap.
This commit supports multiple heaps in the object space.
* Functions heap_* and rb_heap_t manages heap data structure.
* Functions heap_page_* and struct heap_page manage page data
strcuture.
* Functions heap_pagse_* and struct rb_objspace_t::heap_pages
maintains all pages.
For example, pagaes are allocated from the heap_pages.
See https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/GC_design
and https://bugs.ruby-lang.org/attachments/4015/data-heap_structure_with_multiple_heaps.png
for more deitals.
Now, there is only one heap called `eden', which is a space for all
new generated objects.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_core.h')
0 files changed, 0 insertions, 0 deletions