if (!same_var(act))
return false;
- // Explore interleavings of seqcst writes/fences to guarantee total
+ // Explore interleavings of seqcst writes to guarantee total
// order of seq_cst operations that don't commute
- if ((could_be_write() || act->could_be_write() || is_fence() || act->is_fence())
- && is_seqcst() && act->is_seqcst())
+ if ((could_be_write() || act->could_be_write()) && is_seqcst() && act->is_seqcst())
return true;
- // Explore synchronizing read/write/fence pairs
- if (is_acquire() && act->is_release() && (is_read() || is_fence()) &&
- (act->could_be_write() || act->is_fence()))
+ // Explore synchronizing read/write pairs
+ if (is_acquire() && act->is_release() && is_read() && act->could_be_write())
return true;
// lock just released...we can grab lock