This paper proposes explicitly specifying actual interference points in the program source code presents a type and effect system for verifying the correctness of these interference specifications.
Experimental results on a variety of Java benchmarks show that this approach provides a significant improvement over prior systems based on method-level atomicity specifications. In particular, it reduces the number of interference points one must consider from several hundred points per thousand lines of code to roughly 13 per thousand lines of code. Explicit interference points also highlight all known concurrency defects in these benchmarks.
Presented at FOOL 2011; Sunday, 23 October 2011; Portland, Oregon, USA