Lock-Free vs Wait-Free

What is the key distinction between a lock-free data structure and a wait-free data structure?

A

Wait-free is just another name for lock-free in the academic literature

B

Lock-free means no mutexes are used; wait-free means no atomic operations are used

C

Lock-free guarantees system-wide progress (at least one thread makes progress); wait-free guarantees per-thread progress (every thread completes in bounded steps)

D

Lock-free structures are faster than wait-free structures in all cases