Concurrent collections provide thread-safe, highly-scalable operations, and are widely used in practice. However, programmers can misuse these concurrent collections by composing one operation that checks a condition (e.g., whether the collection contains an element) with another operation that acts based on this condition (e.g., insert the element into the collection). Unless the whole composition is atomic, the program contains an atomicity violation bug. In this paper we present the first empirical study of CHECK-THEN-ACT idioms of Java concurrent collections in a large corpus of open-source applications. We catalog nine commonly misused check-then-act idioms and show the correct usage. We quantitatively and qualitatively analyze 28 wi...
Abstract. Mainstream programming languages offer libraries of concur-rent data structures. Each meth...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
In software component verification, one of the challenges is model checking of isolated components. ...
Abstract—Concurrent collections provide thread-safe, highly-scalable operations, and are widely used...
Abstract We provide a parametric framework for verifying safety properties of concurrent Java progra...
In multicore era, programmers exploit concurrent programming to gain performance and responsiveness ...
AbstractEnsuring the correctness of multithreaded programs is difficult, due to the potential for un...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Ensuring the correctness of multithreaded programs is difficult, due to the potential for unexpected...
AbstractConcurrency in multithreaded programs introduces additional complexity in software verificat...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Abstract. Current approaches to the development of reliable software systems include decomposition i...
Abstract. Nowadays, multi-threaded programs are quite common and so are concurrency errors. Many wor...
AbstractEvolving and refactoring concurrent Java software can be error-prone, resulting in race cond...
Using thread-safe libraries can help programmers avoid the complexities of multithreading. However, ...
Abstract. Mainstream programming languages offer libraries of concur-rent data structures. Each meth...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
In software component verification, one of the challenges is model checking of isolated components. ...
Abstract—Concurrent collections provide thread-safe, highly-scalable operations, and are widely used...
Abstract We provide a parametric framework for verifying safety properties of concurrent Java progra...
In multicore era, programmers exploit concurrent programming to gain performance and responsiveness ...
AbstractEnsuring the correctness of multithreaded programs is difficult, due to the potential for un...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Ensuring the correctness of multithreaded programs is difficult, due to the potential for unexpected...
AbstractConcurrency in multithreaded programs introduces additional complexity in software verificat...
The Java programming language supports concurrency. Concurrent programs are harder to verify than th...
Abstract. Current approaches to the development of reliable software systems include decomposition i...
Abstract. Nowadays, multi-threaded programs are quite common and so are concurrency errors. Many wor...
AbstractEvolving and refactoring concurrent Java software can be error-prone, resulting in race cond...
Using thread-safe libraries can help programmers avoid the complexities of multithreading. However, ...
Abstract. Mainstream programming languages offer libraries of concur-rent data structures. Each meth...
Abstract. Concurrent programs that are free of unsynchronized ac-cesses to shared data may still exh...
In software component verification, one of the challenges is model checking of isolated components. ...