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