me->gate.store(1, std::mo_relaxed );
// publish my node as the new tail :
- mcs_node * pred = m_tail.exchange(me, std::mo_acq_rel);
// FIXME: Only weakening the mo_acq_rel cause the spec error
+ mcs_node * pred = m_tail.exchange(me, std::mo_acq_rel);
/**
@Begin
@Commit_point_define_check: pred == NULL
{
mcs_node * tail_was_me = me;
bool success;
+ // FIXME: Only weakening the mo_acq_rel cause the spec error
success = m_tail.compare_exchange_strong(
tail_was_me,NULL,std::mo_acq_rel);
- // FIXME: Only weakening the mo_acq_rel cause the spec error
/**
@Begin
@Commit_point_define_check: success == true