Dynamic inference of polymorphic lock types

TitleDynamic inference of polymorphic lock types
Publication TypeJournal Articles
Year of Publication2005
AuthorsRose J, Swamy N, Hicks MW
JournalScience of Computer Programming
Pagination366 - 383
Date Published2005/12//
ISBN Number0167-6423
KeywordsData races, Dynamic analysis, java, Multithreading, Type inference

We present FindLocks, an approach for automatically proving the absence of data races in multi-threaded Java programs, using a combination of dynamic and static analysis. The program in question is instrumented so that when executed it will gather information about locking relationships. This information is then used to automatically generate annotations needed to type check the program using the Race-Free Java type system. Programs that type check are sure to be free from races. We call this technique dynamic annotation inference. We describe the design and implementation of our approach, and our experience applying the tool to a variety of Java programs. We have found that when using a reasonably comprehensive test suite, which is easy for small programs but harder for larger ones, the approach generates useful annotations.