Read Eraser: A Dynamic Data Race Detector for Multithreaded Programs.

Questions
  • According to the lockset algorithm, when does Eraser signal a data race? Why is this condition chosen?
  • Under what conditions does Eraser report a false positive? What conditions does it produce false negatives?

Turn in your answers as Exercise 18. You’re also recommended to try MIT 6.033’s Helgrind hands-on.

Further readings