diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-22 02:00:40 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-02-22 02:00:40 +0000 |
commit | 513fefdd1f0feb68fe4bd9a233dd1cbfeb7390ba (patch) | |
tree | ed3117b603aee6d088707bc2e895ac2131ccf5ad /doc/syntax/miscellaneous.rdoc | |
parent | 6c801fc58f39085ea5e71fc9b07e4fa52427b5e5 (diff) | |
download | ruby-513fefdd1f0feb68fe4bd9a233dd1cbfeb7390ba.tar.gz |
* gc.c (rb_objspace_call_finalizer): control GC execution during
force firnalizations at the end of interpreter process.
[Bug #10768]
1) Prohibit incremental GC while running Ruby-level finalizers
to avoid any danger.
2) Prohibit GC while invoking T_DATA/T_FILE data structure
because these operations break object relations consistency.
This patch can introduce another memory consuming issue because
Ruby-level finalizers can run after (2), GC is disabled.
However, basically object consistency was broken at (2) as I
described above. So that running Ruby-level finalizers contains
danger originally. Because of this point, I need to suggest to
remove these 3 lines (invoking remaining finalizers). And add a
rule to add that finalizers should not add new finalizers, or
say there is no guarantee to invoke finalizers that added by
another finalizer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'doc/syntax/miscellaneous.rdoc')
0 files changed, 0 insertions, 0 deletions