Alting Barriers: Synchronisation with Choice in Java using JCSP

Welch, Peter H. and Brown, Neil C.C. and Moores, James and Chalmers, Kevin and Sputh, Bernhard H. C. (2010) Alting Barriers: Synchronisation with Choice in Java using JCSP. Concurrency and Computation: Practice and Experience, 22 . pp. 182-196. (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided)

The full text of this publication is not available from this repository. (Contact us about this Publication)
Official URL


Communicating Sequential Processes for Java (JCSP) is a mature library that implements CSP-derived concurrency primitives in Java. A JCSP system is a hierarchical network of autonomous processes communicating over synchronous (optionally buffered) channels, and multiway synchronising through barriers. This paper presents a significant extension to the barrier mechanism: the fast resolution of choice between any number of barrier events, channel communications (in either direction) and timeouts. Previously, and in line with all currently released libraries and languages offering the CSP concurrency model, choice was restricted to channel inputs and timeouts. The paper demonstrates an application of alting barriers and explains the mechanisms used in their implementation that enables their use as guards in a choice. It also shows how choice over channel outputs becomes possible, as a simple consequence of having choice over barriers. Finally, an efficient implementation of CSP's broadcasting channels is presented (using a phased barrier synchronisation pattern) and a mechanism for allowing choice over these is discussed. With this extended JCSP, almost all CSP-specified systems can now be directly implemented. The new library is available under LGPL open source.

Item Type: Article
Additional information: The DOI should redirect to .
Uncontrolled keywords: determinacy analysis, Craig interpolants
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Faculties > Science Technology and Medical Studies > School of Computing > Programming Languages and Systems Group
Depositing User: Neil Brown
Date Deposited: 21 Sep 2012 09:49
Last Modified: 12 May 2014 15:58
Resource URI: (The current URI for this page, for reference purposes)
  • Depositors only (login required):