// publish me to previous lock-holder :
// FIXME: detection miss, don't think it's necessary
pred->next.store(me, std::mo_release );
+ printf("lock_miss1\n");
// (*2) pred not touched any more
// FIXME: detection miss, don't think it's necessary
mcs_node * next = me->next.load(std::mo_acquire);
+ printf("unlock_miss2\n");
if ( next == NULL )
{
mcs_node * tail_was_me = me;
for(;;) {
// FIXME: detection miss, don't think it's necessary
next = me->next.load(std::mo_acquire);
+ printf("unlock_miss3\n");
if ( next != NULL )
break;
thrd_yield();