Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Distributed programming in Argus
Communications of the ACM
Concurrent programming in ML
Experience with processes and monitors in Mesa
Communications of the ACM
Reduction: a method of proving properties of parallel programs
Communications of the ACM
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Stabilizers: a modular checkpointing abstraction for concurrent functional programs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
A flexible framework for implementing software transactional memory
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Sinfonia: a new paradigm for building scalable distributed systems
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Transactions with isolation and cooperation
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
High-level small-step operational semantics for transactions
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantics of transactional memory and automatic mutual exclusion
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the correctness of transactional memory
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Depth-first search and linear grajh algorithms
SWAT '71 Proceedings of the 12th Annual Symposium on Switching and Automata Theory (swat 1971)
Journal of Functional Programming
Unifying Memory and Database Transactions
Euro-Par '09 Proceedings of the 15th International Euro-Par Conference on Parallel Processing
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
You are not alone: breaking transaction isolation
Proceedings of the 3rd International Workshop on Multicore Software Engineering
Communicating memory transactions
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Transaction communicators: enabling cooperation among concurrent transactions
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
DISC'06 Proceedings of the 20th international conference on Distributed Computing
Communicating memory transactions
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Transaction communicators: enabling cooperation among concurrent transactions
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Reagents: expressing and composing fine-grained concurrency
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Delegation and nesting in best-effort hardware transactional memory
Proceedings of the twenty-fourth annual ACM symposium on Parallelism in algorithms and architectures
Turning nondeterminism into parallelism
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
Many concurrent programming models enable both transactional memory and message passing. For such models, researchers have built increasingly efficient implementations and defined reasonable correctness criteria, while it remains an open problem to obtain the best of both worlds. We present a programming model that is the first to have opaque transactions, safe asynchronous message passing, and an efficient implementation. Our semantics uses tentative message passing and keeps track of dependencies to enable undo of message passing in case a transaction aborts. We can program communication idioms such as barrier and rendezvous that do not deadlock when used in an atomic block. Our experiments show that our model adds little overhead to pure transactions, and that it is significantly more efficient than Transactional Events. We use a novel definition of safe message passing that may be of independent interest.