A data race detection system is described which precisely identifies data
races in concurrent programs. The system and techniques described utilize
locksets to maintain information while searching through executions of a
concurrent program. The locksets are updated according to program
statements in the concurrent program. The dynamic updating of the
locksets, combined with a less conservative approach then used in
existing lockset data race detection techniques, allows the technique to
be precise; that is, the technique does not report false positives when
searching a program.