Skip to content

Latest commit

 

History

History
 
 

threads-bugs

Common Concurrency Problems

Code examples from the chapter about concurrency problems. Type make to build all examples.

Atomicity Failure

  • atomicity.c: Shows how uncareful check-then-use can crash code
  • atomicity_fixed.c: Shows how to fix the problem with a lock

Ordering Violation

  • ordering.c: Shows the ordering problem from the book chapter
  • ordering_fixed.c: Shows how to fix the problem with a condition variable

Deadlock

  • deadlock.c: Shows simple two-cycle deadlock
  • deadlock_run.sh: Script to run the above program many times, until you hit a deadlock and are convinced deadlock can occur