golang-design/under-the-hood

Yuasa 屏障的图画得是不是有问题?

cuglaiyp opened this issue · 1 comments

C.ref2 -> A,那么 shade(*slot)也就是shade(A),应该是把A着色为灰色,为什么图中是把A置为白色、C置为灰色了?

func YuasaWritePointer(slot *unsafe.Pointer, ptr unsafe.Pointer) {
    shade(*slot)
    *slot = ptr
}
  • 原文段落:8.2写屏障技术,图3:使用Yuasa写屏障赋值器

image

ps:还是同一个图,这个地方地方的文字和图不匹配,应该是YuasaWritePointer(C.ref3, B)吧
image

是的 这是一个已知错误 确实图是错的 PR welcome