Actors without Borders: Amnesty for Imprisoned State

Elias Castegren
(Uppsala University, Sweden)
Tobias Wrigstad
(Uppsala University, Sweden)

In concurrent systems, some form of synchronisation is typically needed to achieve data-race freedom, which is important for correctness and safety. In actor-based systems, messages are exchanged concurrently but executed sequentially by the receiving actor. By relying on isolation and non-sharing, an actor can access its own state without fear of data-races, and the internal behavior of an actor can be reasoned about sequentially.

However, actor isolation is sometimes too strong to express useful patterns. For example, letting the iterator of a data-collection alias the internal structure of the collection allows a more efficient implementation than if each access requires going through the interface of the collection. With full isolation, in order to maintain sequential reasoning the iterator must be made part of the collection, which bloats the interface of the collection and means that a client must have access to the whole data-collection in order to use the iterator.

In this paper, we propose a programming language construct that enables a relaxation of isolation but without sacrificing sequential reasoning. We formalise the mechanism in a simple lambda calculus with actors and passive objects, and show how an actor may leak parts of its internal state while ensuring that any interaction with this data is still synchronised.

In Vasco T. Vasconcelos and Philipp Haller: Proceedings Tenth Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software (PLACES 2017), Uppsala, Sweden, 29th April 2017, Electronic Proceedings in Theoretical Computer Science 246, pp. 10–20.
Published: 8th April 2017.

ArXived at: http://dx.doi.org/10.4204/EPTCS.246.4 bibtex PDF
References in reconstructed bibtex, XML and HTML format (approximated).
Comments and questions to: eptcs@eptcs.org
For website issues: webmaster@eptcs.org