lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


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?