25 lines
639 B
Markdown
25 lines
639 B
Markdown
|
|
# 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
|
|
|
|
|
|
|
|
|