Abstract. Join patterns are an attractive declarative way to synchronize both threads and asynchronous distributed computations. We explore joins in the context of extensible pattern matching that recently appeared in languages such as F# and Scala. Our implementation supports join patterns with multiple synchronous events, and guards. Furthermore, we integrated joins into an existing actor-based concurrency framework. It enables join patterns to be used in the context of more advanced synchronization modes, such as future-type message sending and token-passing continuations.
Preview of a Scala Joins library. ScalaJoins-0.4.tar.gz
This version has been tested with Scala 2.6.1-final. This page is intended to be populated with more examples and tutorial material. Until then, we kindly refer you to the technical report below which discusses the library design and implementation.