aboutsummaryrefslogtreecommitdiffstats
path: root/class.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-02-22 02:00:40 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-02-22 02:00:40 +0000
commit513fefdd1f0feb68fe4bd9a233dd1cbfeb7390ba (patch)
treeed3117b603aee6d088707bc2e895ac2131ccf5ad /class.c
parent6c801fc58f39085ea5e71fc9b07e4fa52427b5e5 (diff)
downloadruby-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 'class.c')
0 files changed, 0 insertions, 0 deletions