@fadis_ 偽陰性は
o = *addr;
区間1
CAS_weak(addr, o, n) {
got = LL(*a);
if (got== o) {
区間2
SC(addr, n);
}
}
の区間2での擬陰性であり、区間1については依然としてABAります
@kumagi @kikairoya 「compare_exchange_weakはLL/SCでは偽陰性があるかもしれない」てのはアドレスだけ見て値を見てなくてCASとしては通さないといけないABAな状況で誤って通さない可能性があるって事だと認識してたんですが、そうではなさげ?
-
-
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
@fadis_@kikairoya 違います。「LLしてからSCするまでの間」で、例えばプリエンプションされるとか、同じキャッシュラインの別のアドレスに書き込みが発生するとか、そういうCAS命令ならABAとか全く関係なしに成功して然るべき状況で、失敗する、という意味です。Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.