We present Goldilocks, a Java runtime that monitors program executions and throws a DataRaceException when a data race is about to occur. This prevents racy accesses from taking p...
We present a novel technique for static race detection in Java programs, comprised of a series of stages that employ a combination of static analyses to successively reduce the pa...
Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended nondeterministic executions of the programs. Previous on-the- y t...
One of the major productivity hurdles for parallel programming is non-determinism -- a parallel program may yield different results on different executions with the same input, dep...
Data races do not cover all kinds of concurrency errors. This paper presents a data-ow-based technique to nd stale-value errors, which are not found by low-level and high-level d...