title: What is the difference between lock-free and obstruction-free?
body: <p>I am reading up on <a href="https://en.wikipedia.org/wiki/Transactional_memory" rel="nofollow noreferrer">Transactional Memory</a> (TM), and one of the papers I'm reading says[<a href="https://doi.org/10.1007/978-3-642-15763-9_6" rel="nofollow noreferrer" title="A Scalable Lock-Free Universal Construction with Best Effort Transactional Hardware">1</a>]:</p>
  <blockquote>
  <p>Indeed, it was two nonblocking algorithms, the obstruction-free DSTM and lock-free FSTM that reinvigorated STM research in the past decade.</p>
  </blockquote>
  <p>I was under the impression that lock implied obstruction.  Apparently, I was wrong...</p>
  <p>What is the difference between the terms &quot;<em>lock-free</em>&quot; and &quot;<em>obstruction-free</em>&quot;?</p>