SH
Size: a a a
SH
D
AK
m
bind
не нужен, но иногда его синтаксис удобнее и компактнее чем лямбды. В прочем для простых случае теперь есть bind_front
.S
IZ
D
CD
D
CD
CD
D
D
_InterlockedExchange()
для store()
, _InterlockedCompareExchange
для load()
)CD
_InterlockedExchange()
для store()
, _InterlockedCompareExchange
для load()
)CD
D
CD
D
head == current_head
=> "голова" на месте(head==tail)
=> очередь не пуста value = next_ptr->value
=> считали значениеcas_weak_helper(m_head.get_ptr(), head, new_head)
=> если true, то голова все еще наша, считанное значение валидноCD
head == current_head
=> "голова" на месте(head==tail)
=> очередь не пуста value = next_ptr->value
=> считали значениеcas_weak_helper(m_head.get_ptr(), head, new_head)
=> если true, то голова все еще наша, считанное значение валидно