The Joins Concurrency Library
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.
KeywordsTransactional Memory Return Type Software Transactional Memory Public Class Join Object
Unable to display preview. Download preview PDF.
- 1.Microsoft Research: Cω (2004), http://research.microsoft.com/Comega
- 2.Russo, C.: Joins: A Concurrency Library, Binaries with tutorial and samples (2006), http://research.microsoft.com/research/downloads
- 3.Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems 26 (2004)Google Scholar
- 4.Itzstein, G.S., Kearney, D.: Join Java: An alternative concurrency semantics for Java. Technical Report ACRC-01-001, University of South Australia (2001)Google Scholar
- 5.Chrysanthakopoulos, G., Singh, S.: An asynchronous messaging library for C#. In: Synchronization and Concurrency in Object-Oriented Languages (SCOOL). OOPSLA 2005 Workshop, UR Research (2005)Google Scholar
- 6.Kennedy, A.J., Russo, C.V.: Generalized algebraic data types and object-oriented programming. In: Object-Oriented Programming: Systems, Languages, Applications (OOPSLA), San Diego. ACM, New York (2005)Google Scholar
- 10.Singh, S.: Higher-order combinators for join patterns using STM. In: TRANSACT ACM Workshop on Languages, Compilers and Hardware Support for Transactional Computing (2006)Google Scholar