Check Synchronization tool

We are providing you a tool that performs dynamic checks to detect incorrect synchronization. The idea behind these checks are described in the paper Eraser: A Dynamic Data Race Detector for Multithreaded Programs. The Eraser central protocol/principle is that if a field is accessed by multiple threads, then there should be some lock that is always held whenever the field is accessed.

The Eraser protocol is only approximately correct. There are violations of the Eraser protocol that are correctly synchronized, and synchronization errors that don't violate the Eraser protocol.

Usage instructions