JATO: Native Code Atomicity for Java [chapter]

Siliang Li, Yu David Liu, Gang Tan
2012 Lecture Notes in Computer Science  
Atomicity enforcement in a multi-threaded application can be critical to the application's safety. In this paper, we take the challenge of enforcing atomicity in a multilingual application, which is developed in multiple programming languages. Specifically, we describe the design and implementation of JATO, which enforces the atomicity of a native method when a Java application invokes the native method through the Java Native Interface (JNI). JATO relies on a constraint-based system, which
more » ... rates constraints from both Java and native code based on how Java objects are accessed by threads. Constraints are then solved to infer a set of Java objects that need to be locked in native methods to enforce the atomicity of the native method invocation. We also propose a number of optimizations that soundly improve the performance. Evaluation through JATO's prototype implementation demonstrates it enforces native-method atomicity with reasonable run-time overhead.
doi:10.1007/978-3-642-35182-2_2 fatcat:gy4hh6arejdfdesj35kbb6guhi