[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: two questions about gc
- From: "冶晶邓" <fatfatson@...>
- Date: Wed, 18 Jul 2007 16:32:24 +0800
If you are assigning a white object to a black one, there are two ways
to restore the invariant: turn the white object into a gray one (so
move "forward" the gray line), or turn the black object into a gray one
(moving the gray line "back"). Based on some performance considerations,
we think that for some kinds of assignment it is better to mover forward
the barrier, while for others it is better to move it back.
thank you for your answer very much! but i'm still missing for the first question.
i found luaC_barrierback is only used when the black object is a table, while luaC_barrierf is for the other type.
why can't we simply mark the white object to grey as what luaC_barrierf do? if we turn the parent table back to grey, it means all of its son objects will be traversed again, what's the reason we have to do this? is there any special characters of table type?