2008
DOI: 10.1007/978-3-540-89330-1_13
|View full text |Cite
|
Sign up to set email alerts
|

Reasoning about Java’s Reentrant Locks

Abstract: This paper presents a verification technique for a concurrent Java-like language with reentrant locks. The verification technique is based on permissionaccounting separation logic. As usual, each lock is associated with a resource invariant, i.e., when acquiring the lock the resources are obtained by the thread holding the lock, and when releasing the lock, the resources are released. To accommodate for reentrancy, the notion of lockset is introduced: a multiset of locks held by a thread. Keeping track of the … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
41
0

Year Published

2008
2008
2020
2020

Publication Types

Select...
5
2

Relationship

1
6

Authors

Journals

citations
Cited by 34 publications
(41 citation statements)
references
References 22 publications
0
41
0
Order By: Relevance
“…A recent work [16] proposes a verification technique for a concurrent Java-like language with reentrant locks. The verification technique is based on permission accounting separation logic.…”
Section: Examplementioning
confidence: 99%
See 1 more Smart Citation
“…A recent work [16] proposes a verification technique for a concurrent Java-like language with reentrant locks. The verification technique is based on permission accounting separation logic.…”
Section: Examplementioning
confidence: 99%
“…The verification technique is based on permission accounting separation logic. The essential differences between [16] and our paper are: we focus on verifying concurrent assembly code with reentrant locks and develop an extension to the PCC framework; instead of using hand-writing proof, we provide machine-checkable proof for our framework.…”
Section: Examplementioning
confidence: 99%
“…To give a flavour of this logic, Figure 4.2 quotes the proof rules from [41], preserving the original syntax, for initial and reentrant acquiring of a lock. The first rule states that if a thread locks u, and the set of currently held locks does not contain u yet, and the lock is initialised, then upon completion of the u.lock() statement, u is in the lock set, and the resource invariant has been transferred to the thread holding the lock on u.…”
Section: Lock Interface Specificationmentioning
confidence: 99%
“…Neither was it to develop yet another new logic for concurrent data structures verification. Instead, the permission-based Separation Logic from Hurlin and Haack [46,41] is lifted into the specification language to specify and verify expected behaviour of the main synchronisers available in the java.util.concurrent library. This allowed us to develop the VerCors tool-set that can reason about correctness of concurrent Java programs synchronised with various synchronisers.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
See 1 more Smart Citation