Actors may synchronize, safely!

We study deadlock detection in an actor model with wait-by-necessity synchronizations, a lightweight technique that synchronizes invocations when the corresponding values are strictly needed. This approach relies on the use of futures that are not given an explicit "Future" type. The approach we adopt explicits the synchronization on futures, and on the availability of some values, instead of the synchronization on the termination of a process existing in previous works. This way we are able to analyse the data-flow synchronization inherent to languages that feature wait-by-necessity. We provide a type-system and a solver inferring the type of a program so that deadlocks can be identified statically. As a consequence we can automatically verify the absence of deadlocks in actor programs with wait-by-necessity synchronizations.

[1]  Cosimo Laneve,et al.  Decidability Problems for Actor Systems , 2012, CONCUR.

[2]  Gul A. Agha,et al.  The Structure and Semantics of Actor Languages , 1990, REX Workshop.

[3]  Fabrice Huet,et al.  A Language for Multi-threaded Active Objects , 2012 .

[4]  Einar Broch Johnsen,et al.  Parallel Objects for Multicores: A Glimpse at the Parallel Language Encore , 2015, SFM.

[5]  Denis Caromel,et al.  Asynchronous sequential processes , 2009, Inf. Comput..

[6]  Ahmed Bouajjani,et al.  Analysis of recursively parallel programs , 2012, POPL '12.

[7]  Joachim Niehren,et al.  A concurrent lambda calculus with futures , 2005, Theor. Comput. Sci..

[8]  Cosimo Laneve,et al.  A Beginner's Guide to the DeadLock Analysis Model , 2012, TGC.

[9]  Javier Esparza,et al.  Reachability Analysis Using Net Unfoldings , 2000 .

[10]  Martin Odersky,et al.  Scala Actors: Unifying thread-based and event-based programming , 2009, Theor. Comput. Sci..

[11]  Einar Broch Johnsen,et al.  Creol: A type-safe object-oriented model for distributed concurrent systems , 2006, Theor. Comput. Sci..

[12]  Cosimo Laneve,et al.  Deadlock Detection in Linear Recursive Programs , 2014, SFM.

[13]  Brian A. Davey,et al.  An Introduction to Lattices and Order , 1989 .

[14]  Cosimo Laneve,et al.  A framework for deadlock detection in core ABS , 2015, Software & Systems Modeling.

[15]  Joe aRmstRonG,et al.  Erlang , 2010, Commun. ACM.

[16]  Carl Hewitt,et al.  Procedural Embedding of knowledge in Planner , 1971, IJCAI.

[17]  Cosimo Laneve,et al.  Deadlock analysis of unbounded process networks , 2014, Inf. Comput..

[18]  Naoki Kobayashi,et al.  A New Type System for Deadlock-Free Processes , 2006, CONCUR.

[19]  Frank S. de Boer,et al.  A Complete Guide to the Future , 2007, ESOP.

[20]  Stephen P. Masticola On Cyclic Process Dependencies and the Veriication of Absence of Deadlocks in Reactive Systems , 1997 .

[21]  Carolyn L. Talcott,et al.  A foundation for actor computation , 1997, Journal of Functional Programming.

[22]  Cosimo Laneve,et al.  Deadlock Analysis of Unbounded Process Networks , 2014, CONCUR.

[23]  Cosimo Laneve,et al.  Deadlock Analysis of Concurrent Objects: Theory and Practice , 2013, IFM.