DeepAI AI Chat
Log In Sign Up

Automated Verification of CountDownLatch

by   Wei-Ngan Chin, et al.

The CountDownLatch (CDL) is a versatile concurrency mechanism that was first introduced in Java 5, and is also being adopted into C++ and C#. Its usage allows one or more threads to exchange resources and synchronize by waiting for some tasks to be completed before others can proceed. In this paper, we propose a new framework for verifying the correctness of concurrent applications that use CDLs. Our framework is built on top of two existing mechanisms, concurrent abstract predicate and fictional separation logic, with some enhancements such as borrowed heap and thread local abstraction. In addition, we propose a new inconsistency detection mechanism based on waits-for relation to guarantee deadlock freedom. Prior concurrency verification works have mostly focused on data-race freedom. As a practical proof of concept, we have implemented this new specification and verification mechanism for CDL in a new tool, called HIPCAP, on top of an existing HIP verifier. We have used this new tool to successfully verify various use cases for CDL.


page 1

page 2

page 3

page 4


A Pattern-based deadlock-freedom analysis strategy for concurrent systems

Local analysis has long been recognised as an effective tool to combat t...

Formalizing and Verifying Decentralized Systems with Extended Concurrent Separation Logic

Decentralized techniques are becoming crucial and ubiquitous with the ra...

Scaling up Memory-Efficient Formal Verification Tools for Tree Ensembles

To guarantee that machine learning models yield outputs that are not onl...

A Concurrent Program Logic with a Future and History

Verifying fine-grained optimistic concurrent programs remains an open pr...

DataProVe: A Data Protection Policy and System Architecture Verification Tool

In this paper, we propose a tool, called DataProVe, for specifying high-...

Automated Modular Verification for Race-Free Channels with Implicit and Explicit Synchronization

Ensuring the correctness of software for communication centric programs ...

Extending Concurrent Separation Logic to Enhance Modular Formalization

Nowadays, numerous services based on large-scale distributed systems hav...