2017
DOI: 10.1145/3143359
|View full text |Cite
|
Sign up to set email alerts
|

Deadlock avoidance in parallel programs with futures: why parallel tasks should not wait for strangers

Abstract: Futures are an elegant approach to expressing parallelism in functional programs. However, combining futures with imperative programming (as in C++ or in Java) can lead to pernicious bugs in the form of data races and deadlocks, as a consequence of uncontrolled data flow through mutable shared memory. In this paper we introduce the Known Joins (KJ) property for parallel programs with futures, and relate it to the Deadlock Freedom (DF) and the Data-Race Freedom (DRF) properties. Our paper offers two key theoret… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
9
0

Year Published

2018
2018
2022
2022

Publication Types

Select...
5
1

Relationship

2
4

Authors

Journals

citations
Cited by 12 publications
(9 citation statements)
references
References 49 publications
0
9
0
Order By: Relevance
“…We tested the deadlock detector on a number of example programs with and without deadlocks, including some synthetic, adversarial examples with difficult-to-detect deadlocks, a version of the webserver case study with a subtle deadlock (as well as the original, deadlock-free version), and a motivating example from prior work on dynamic deadlock detection [Cogumbreiro et al 2017]. Our deadlock detector was correct on all tested examples, where the ground truth was determined by manual inspection of the code.…”
Section: Application: Deadlock Detectionmentioning
confidence: 99%
See 2 more Smart Citations
“…We tested the deadlock detector on a number of example programs with and without deadlocks, including some synthetic, adversarial examples with difficult-to-detect deadlocks, a version of the webserver case study with a subtle deadlock (as well as the original, deadlock-free version), and a motivating example from prior work on dynamic deadlock detection [Cogumbreiro et al 2017]. Our deadlock detector was correct on all tested examples, where the ground truth was determined by manual inspection of the code.…”
Section: Application: Deadlock Detectionmentioning
confidence: 99%
“…While we focus on the work on cost semantics because much of it tends to be more theoretical in nature, papers in other areas have also presented dynamic semantics augmented with some form of graph. For example, Cogumbreiro et al [2017] present such a semantics in the context of deadlock detection.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Alternatively, we could treat advanceAll in Armus without these extensions, through its encoding into split-phase synchronisations (call resume on each clock in arbitrary order, followed by advance on each in arbitrary order). 16 Distributed Deadlock Detection. One of the key design goals of X10 is to promote a smooth migration between shared memory and distributed deployments of barrier programs [10].…”
Section: Armus-x10mentioning
confidence: 99%
“…HJ avoids deadlocks that originate from the interaction between phasers and finish blocks by limiting the use of phasers to the scope of finish blocks. Cogumbreiro et al use Armus in the context of a tool that specialises in avoiding deadlocks caused by futures [16].…”
Section: Related Workmentioning
confidence: 99%