The joins concurrency library

  • Authors:
  • Claudio Russo

  • Affiliations:
  • Microsoft Research Ltd, Cambridge, United Kingdom

  • Venue:
  • PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Cω extended C# 1.x with a simple, declarative and powerful model of concurrency – join patterns – applicable both to multithreaded applications and to the orchestration of asynchronous, event-based distributed applications. With Generics available in C# 2.0, we can now provide join patterns as a library rather than a language feature. The Joins library extends its clients with an embedded, type-safe and mostly declarative language for expressing synchronization patterns. The library has some advantages over Cω: it is language neutral, supporting other languages like Visual Basic; its join patterns are more dynamic, allowing solutions difficult to express with Cω; its code is easy to modify, fostering experimentation. Although presenting fewer optimization opportunities, the implementation is efficient and its interface makes it trivial to translate Cω programs to C#. We describe the interface and implementation of Joins which (ab)uses almost every feature of Generics.