Data Races, Locks, Mutexes, Semaphores

Data Races

Aside: When is data shared?

  1. Global variables
  2. Local variables
  3. Local static variables

Fixing Data Races

Mutexes

Semaphores

Locking problems: Deadlocks

Avoiding locking