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 codeatomicity_fixed.c: Shows how to fix the problem with a lock
Ordering Violation
ordering.c: Shows the ordering problem from the book chapterordering_fixed.c: Shows how to fix the problem with a condition variable
Deadlock
deadlock.c: Shows simple two-cycle deadlockdeadlock_run.sh: Script to run the above program many times, until you hit a deadlock and are convinced deadlock can occur