Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications 2005
DOI: 10.1145/1094811.1094845
|View full text |Cite
|
Sign up to set email alerts
|

Safe futures for Java

Abstract: A future is a simple and elegant abstraction that allows concurrency to be expressed often through a relatively small rewrite of a sequential program. In the absence of side-effects, futures serve as benign annotations that mark potentially concurrent regions of code. Unfortunately, when computation relies heavily on mutation as is the case in Java, its meaning is less clear, and much of its intended simplicity lost.This paper explores the definition and implementation of safe futures for Java. One can think o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
52
0

Year Published

2006
2006
2019
2019

Publication Types

Select...
5
3
1

Relationship

1
8

Authors

Journals

citations
Cited by 112 publications
(52 citation statements)
references
References 48 publications
0
52
0
Order By: Relevance
“…Later techniques speculatively privatize shared arrays (to allow for false dependences) and combine the marking and checking phases (to guarantee progress) [2], [7]. Two programmable systems are developed in recent years: safe future in Java [21] and ordered transactions in X10 [20]. The first is designed for (typesafe) Java programs, whereas PPR supports unsafe languages with unconstrained control flows.…”
Section: ) Methodologymentioning
confidence: 99%
“…Later techniques speculatively privatize shared arrays (to allow for false dependences) and combine the marking and checking phases (to guarantee progress) [2], [7]. Two programmable systems are developed in recent years: safe future in Java [21] and ordered transactions in X10 [20]. The first is designed for (typesafe) Java programs, whereas PPR supports unsafe languages with unconstrained control flows.…”
Section: ) Methodologymentioning
confidence: 99%
“…The ability to revert to a prior point within a concurrent execution is essential to transaction systems (Kung & Robinson 1981;Gray & Reuter 1993;Adya et al 1995); outside their role for database concurrency control, such approaches can improve parallel program performance by profitably exploiting speculative execution (Rinard 1999;Welc et al 2005). Harris et al (2005) proposes a transactional memory system for Haskell that introduces a retry primitive to allow a transactional execution to safely abort and be reexecuted, if desired resources are unavailable.…”
Section: Related Workmentioning
confidence: 99%
“…Stabilizers rely on unrolling thread dependencies of affected threads to ensure consistency instead of employing specific runtime mechanisms to reclaim resources. Safe futures (Welc et al 2005) bear some similarity to the speculative abstraction defined here as both provide a revocation mechanism based on tracking dynamic data and control-flow. However, safe futures do not easily compose with other Java concurrency primitives, and the criteria for revocation is automatically determined based on dependency violations, and is thus not under user control.…”
Section: Related Workmentioning
confidence: 99%
“…Later techniques speculatively privatize shared arrays (to allow for false dependences) and combine the marking and checking phases (to guarantee progress) [1,2,4]. Two programmable systems are developed in recent years: safe future in Java [15] and ordered transactions in X10 [14]. The first is designed for (type-safe) Java programs, whereas PPR supports unsafe languages with unconstrained control flows.…”
Section: Related Workmentioning
confidence: 99%